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-5-unlimited.bpl -------------------------------------------------------------------------------- This is Ultimate 0.1.24-fa1c628-m [2019-01-31 14:43:38,614 INFO L170 SettingsManager]: Resetting all preferences to default values... [2019-01-31 14:43:38,616 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2019-01-31 14:43:38,633 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2019-01-31 14:43:38,633 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2019-01-31 14:43:38,635 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2019-01-31 14:43:38,636 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2019-01-31 14:43:38,639 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2019-01-31 14:43:38,642 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2019-01-31 14:43:38,643 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2019-01-31 14:43:38,645 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2019-01-31 14:43:38,645 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2019-01-31 14:43:38,646 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2019-01-31 14:43:38,648 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2019-01-31 14:43:38,655 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2019-01-31 14:43:38,656 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2019-01-31 14:43:38,657 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2019-01-31 14:43:38,662 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2019-01-31 14:43:38,666 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2019-01-31 14:43:38,670 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2019-01-31 14:43:38,671 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2019-01-31 14:43:38,672 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2019-01-31 14:43:38,676 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2019-01-31 14:43:38,677 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2019-01-31 14:43:38,677 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2019-01-31 14:43:38,680 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2019-01-31 14:43:38,681 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2019-01-31 14:43:38,682 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2019-01-31 14:43:38,683 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2019-01-31 14:43:38,686 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2019-01-31 14:43:38,686 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2019-01-31 14:43:38,687 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2019-01-31 14:43:38,687 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2019-01-31 14:43:38,687 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2019-01-31 14:43:38,690 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2019-01-31 14:43:38,690 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2019-01-31 14:43:38,691 INFO L98 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/ai/array-bench/reach_32bit_compound_exp_cong.epf [2019-01-31 14:43:38,713 INFO L110 SettingsManager]: Loading preferences was successful [2019-01-31 14:43:38,713 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2019-01-31 14:43:38,714 INFO L131 SettingsManager]: Preferences of Boogie Preprocessor differ from their defaults: [2019-01-31 14:43:38,714 INFO L133 SettingsManager]: * Show backtranslation warnings=false [2019-01-31 14:43:38,714 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2019-01-31 14:43:38,714 INFO L133 SettingsManager]: * User list type=DISABLED [2019-01-31 14:43:38,715 INFO L133 SettingsManager]: * Inline calls to unimplemented procedures=true [2019-01-31 14:43:38,715 INFO L131 SettingsManager]: Preferences of Abstract Interpretation differ from their defaults: [2019-01-31 14:43:38,715 INFO L133 SettingsManager]: * Explicit value domain=true [2019-01-31 14:43:38,715 INFO L133 SettingsManager]: * Abstract domain for RCFG-of-the-future=PoormanAbstractDomain [2019-01-31 14:43:38,715 INFO L133 SettingsManager]: * Octagon Domain=false [2019-01-31 14:43:38,715 INFO L133 SettingsManager]: * Abstract domain=CompoundDomain [2019-01-31 14:43:38,716 INFO L133 SettingsManager]: * Check feasibility of abstract posts with an SMT solver=true [2019-01-31 14:43:38,716 INFO L133 SettingsManager]: * Interval Domain=false [2019-01-31 14:43:38,716 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2019-01-31 14:43:38,718 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2019-01-31 14:43:38,718 INFO L133 SettingsManager]: * Use SBE=true [2019-01-31 14:43:38,718 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2019-01-31 14:43:38,718 INFO L133 SettingsManager]: * sizeof long=4 [2019-01-31 14:43:38,718 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2019-01-31 14:43:38,719 INFO L133 SettingsManager]: * sizeof POINTER=4 [2019-01-31 14:43:38,720 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2019-01-31 14:43:38,720 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2019-01-31 14:43:38,721 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2019-01-31 14:43:38,721 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2019-01-31 14:43:38,721 INFO L133 SettingsManager]: * sizeof long double=12 [2019-01-31 14:43:38,721 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2019-01-31 14:43:38,721 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2019-01-31 14:43:38,722 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2019-01-31 14:43:38,722 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2019-01-31 14:43:38,722 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2019-01-31 14:43:38,722 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:8092 -smt2 -in -t:10000 [2019-01-31 14:43:38,722 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2019-01-31 14:43:38,723 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2019-01-31 14:43:38,723 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2019-01-31 14:43:38,723 INFO L133 SettingsManager]: * Trace refinement strategy=TAIPAN [2019-01-31 14:43:38,723 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2019-01-31 14:43:38,723 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:8092 -smt2 -in [2019-01-31 14:43:38,723 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2019-01-31 14:43:38,724 INFO L133 SettingsManager]: * Abstract interpretation Mode=USE_PREDICATES [2019-01-31 14:43:38,769 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2019-01-31 14:43:38,781 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2019-01-31 14:43:38,785 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2019-01-31 14:43:38,788 INFO L271 PluginConnector]: Initializing Boogie PL CUP Parser... [2019-01-31 14:43:38,788 INFO L276 PluginConnector]: Boogie PL CUP Parser initialized [2019-01-31 14:43:38,788 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/programs/heapseparator/speedup-poc-dd-5-unlimited.bpl [2019-01-31 14:43:38,789 INFO L111 BoogieParser]: Parsing: '/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/programs/heapseparator/speedup-poc-dd-5-unlimited.bpl' [2019-01-31 14:43:38,834 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2019-01-31 14:43:38,836 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2019-01-31 14:43:38,837 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2019-01-31 14:43:38,837 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2019-01-31 14:43:38,837 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2019-01-31 14:43:38,853 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 31.01 02:43:38" (1/1) ... [2019-01-31 14:43:38,869 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 31.01 02:43:38" (1/1) ... [2019-01-31 14:43:38,903 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2019-01-31 14:43:38,904 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2019-01-31 14:43:38,904 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2019-01-31 14:43:38,904 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2019-01-31 14:43:38,916 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 31.01 02:43:38" (1/1) ... [2019-01-31 14:43:38,916 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 31.01 02:43:38" (1/1) ... [2019-01-31 14:43:38,918 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 31.01 02:43:38" (1/1) ... [2019-01-31 14:43:38,918 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 31.01 02:43:38" (1/1) ... [2019-01-31 14:43:38,927 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 31.01 02:43:38" (1/1) ... [2019-01-31 14:43:38,937 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 31.01 02:43:38" (1/1) ... [2019-01-31 14:43:38,940 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 31.01 02:43:38" (1/1) ... [2019-01-31 14:43:38,941 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2019-01-31 14:43:38,942 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2019-01-31 14:43:38,942 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2019-01-31 14:43:38,942 INFO L276 PluginConnector]: RCFGBuilder initialized [2019-01-31 14:43:38,943 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 31.01 02:43:38" (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:8092 -smt2 -in -t:10000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:8092 -smt2 -in -t:10000 [2019-01-31 14:43:39,009 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2019-01-31 14:43:39,009 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2019-01-31 14:43:39,614 INFO L281 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2019-01-31 14:43:39,615 INFO L286 CfgBuilder]: Removed 13 assue(true) statements. [2019-01-31 14:43:39,616 INFO L202 PluginConnector]: Adding new model speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 31.01 02:43:39 BoogieIcfgContainer [2019-01-31 14:43:39,616 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2019-01-31 14:43:39,617 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2019-01-31 14:43:39,617 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2019-01-31 14:43:39,620 INFO L276 PluginConnector]: TraceAbstraction initialized [2019-01-31 14:43:39,620 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 31.01 02:43:38" (1/2) ... [2019-01-31 14:43:39,622 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@5eb86ed3 and model type speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 31.01 02:43:39, skipping insertion in model container [2019-01-31 14:43:39,622 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 31.01 02:43:39" (2/2) ... [2019-01-31 14:43:39,624 INFO L112 eAbstractionObserver]: Analyzing ICFG speedup-poc-dd-5-unlimited.bpl [2019-01-31 14:43:39,634 INFO L156 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2019-01-31 14:43:39,642 INFO L168 ceAbstractionStarter]: Appying trace abstraction to program that has 5 error locations. [2019-01-31 14:43:39,660 INFO L257 AbstractCegarLoop]: Starting to check reachability of 5 error locations. [2019-01-31 14:43:39,693 INFO L382 AbstractCegarLoop]: Interprodecural is true [2019-01-31 14:43:39,694 INFO L383 AbstractCegarLoop]: Hoare is true [2019-01-31 14:43:39,694 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2019-01-31 14:43:39,694 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2019-01-31 14:43:39,694 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2019-01-31 14:43:39,694 INFO L387 AbstractCegarLoop]: Difference is false [2019-01-31 14:43:39,694 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2019-01-31 14:43:39,695 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2019-01-31 14:43:39,717 INFO L276 IsEmpty]: Start isEmpty. Operand 13 states. [2019-01-31 14:43:39,731 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 3 [2019-01-31 14:43:39,731 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:43:39,732 INFO L402 BasicCegarLoop]: trace histogram [1, 1] [2019-01-31 14:43:39,736 INFO L423 AbstractCegarLoop]: === Iteration 1 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:43:39,743 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:43:39,744 INFO L82 PathProgramCache]: Analyzing trace with hash 984, now seen corresponding path program 1 times [2019-01-31 14:43:39,747 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:43:39,801 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:43:39,802 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:43:39,802 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:43:39,802 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:43:39,849 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:39,980 INFO L273 TraceCheckUtils]: 0: Hoare triple {16#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {18#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:43:39,989 INFO L273 TraceCheckUtils]: 1: Hoare triple {18#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {17#false} is VALID [2019-01-31 14:43:39,991 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:43:39,993 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-01-31 14:43:39,993 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [1] imperfect sequences [] total 1 [2019-01-31 14:43:39,993 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-31 14:43:39,998 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 2 [2019-01-31 14:43:40,000 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:43:40,003 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2019-01-31 14:43:40,034 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 2 edges. 2 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:43:40,034 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2019-01-31 14:43:40,044 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2019-01-31 14:43:40,044 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-31 14:43:40,047 INFO L87 Difference]: Start difference. First operand 13 states. Second operand 3 states. [2019-01-31 14:43:40,552 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:40,553 INFO L93 Difference]: Finished difference Result 25 states and 33 transitions. [2019-01-31 14:43:40,553 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-31 14:43:40,553 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 2 [2019-01-31 14:43:40,553 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:43:40,554 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-31 14:43:40,558 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 33 transitions. [2019-01-31 14:43:40,558 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-31 14:43:40,561 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 33 transitions. [2019-01-31 14:43:40,562 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 33 transitions. [2019-01-31 14:43:40,626 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 33 edges. 33 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:43:40,638 INFO L225 Difference]: With dead ends: 25 [2019-01-31 14:43:40,638 INFO L226 Difference]: Without dead ends: 20 [2019-01-31 14:43:40,642 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 1 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-31 14:43:40,656 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 20 states. [2019-01-31 14:43:40,689 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 20 to 12. [2019-01-31 14:43:40,690 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:43:40,690 INFO L82 GeneralOperation]: Start isEquivalent. First operand 20 states. Second operand 12 states. [2019-01-31 14:43:40,691 INFO L74 IsIncluded]: Start isIncluded. First operand 20 states. Second operand 12 states. [2019-01-31 14:43:40,691 INFO L87 Difference]: Start difference. First operand 20 states. Second operand 12 states. [2019-01-31 14:43:40,694 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:40,694 INFO L93 Difference]: Finished difference Result 20 states and 28 transitions. [2019-01-31 14:43:40,695 INFO L276 IsEmpty]: Start isEmpty. Operand 20 states and 28 transitions. [2019-01-31 14:43:40,695 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:43:40,695 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:43:40,695 INFO L74 IsIncluded]: Start isIncluded. First operand 12 states. Second operand 20 states. [2019-01-31 14:43:40,696 INFO L87 Difference]: Start difference. First operand 12 states. Second operand 20 states. [2019-01-31 14:43:40,698 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:40,699 INFO L93 Difference]: Finished difference Result 20 states and 28 transitions. [2019-01-31 14:43:40,699 INFO L276 IsEmpty]: Start isEmpty. Operand 20 states and 28 transitions. [2019-01-31 14:43:40,699 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:43:40,700 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:43:40,700 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:43:40,700 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:43:40,700 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:43:40,702 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 21 transitions. [2019-01-31 14:43:40,704 INFO L78 Accepts]: Start accepts. Automaton has 12 states and 21 transitions. Word has length 2 [2019-01-31 14:43:40,704 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:43:40,705 INFO L480 AbstractCegarLoop]: Abstraction has 12 states and 21 transitions. [2019-01-31 14:43:40,705 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2019-01-31 14:43:40,705 INFO L276 IsEmpty]: Start isEmpty. Operand 12 states and 21 transitions. [2019-01-31 14:43:40,705 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-31 14:43:40,705 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:43:40,706 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-31 14:43:40,706 INFO L423 AbstractCegarLoop]: === Iteration 2 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:43:40,706 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:43:40,707 INFO L82 PathProgramCache]: Analyzing trace with hash 30372, now seen corresponding path program 1 times [2019-01-31 14:43:40,707 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:43:40,708 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:43:40,708 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:43:40,708 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:43:40,709 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:43:40,727 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:40,974 WARN L181 SmtUtils]: Spent 178.00 ms on a formula simplification. DAG size of input: 16 DAG size of output: 13 [2019-01-31 14:43:41,125 INFO L273 TraceCheckUtils]: 0: Hoare triple {102#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {104#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:43:41,127 INFO L273 TraceCheckUtils]: 1: Hoare triple {104#(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]; {105#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:43:41,136 INFO L273 TraceCheckUtils]: 2: Hoare triple {105#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {103#false} is VALID [2019-01-31 14:43:41,137 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:43:41,137 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:43:41,137 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:43:41,138 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-01-31 14:43:41,140 INFO L207 CegarAbsIntRunner]: [0], [18], [23] [2019-01-31 14:43:41,179 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:43:41,180 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:43:41,264 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:43:41,266 INFO L272 AbstractInterpreter]: Visited 3 different actions 3 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 2. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-31 14:43:41,270 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:43:41,271 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:43:41,271 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:43:41,271 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:43:41,280 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:43:41,280 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:43:41,307 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:41,321 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:41,324 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:43:41,574 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:41,581 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-31 14:43:41,850 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:41,873 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:41,876 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-31 14:43:42,230 WARN L181 SmtUtils]: Spent 118.00 ms on a formula simplification. DAG size of input: 26 DAG size of output: 20 [2019-01-31 14:43:42,257 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:42,259 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:42,261 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:42,267 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:42,269 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 25 [2019-01-31 14:43:42,274 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:42,301 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:42,324 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:42,349 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 21 [2019-01-31 14:43:42,372 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 5 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 27 [2019-01-31 14:43:42,403 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 6 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:43:42,469 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:43:42,502 INFO L478 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 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:43:42,508 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:42,533 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:42,548 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:42,564 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:42,576 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:42,612 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 2 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:43:42,613 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 5 variables, input treesize:52, output treesize:50 [2019-01-31 14:43:42,620 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:42,620 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_27|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, |v_#valid_7|]. (let ((.cse0 (store |v_#valid_7| ULTIMATE.start_main_p1 1))) (let ((.cse1 (store .cse0 ULTIMATE.start_main_p2 1))) (and (= 0 (select .cse0 ULTIMATE.start_main_p2)) (= 0 (select (store .cse1 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4)) (= (select .cse1 ULTIMATE.start_main_p3) 0) (= |#memory_int| (store (store (store (store (store |v_#memory_int_27| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0))))) [2019-01-31 14:43:42,620 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:43:42,796 WARN L181 SmtUtils]: Spent 103.00 ms on a formula simplification. DAG size of input: 33 DAG size of output: 29 [2019-01-31 14:43:42,948 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:42,950 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-31 14:43:42,956 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:43,023 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:43:43,023 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:55, output treesize:33 [2019-01-31 14:43:43,033 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:43,033 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_28|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_28| ULTIMATE.start_main_p4))) (and (= (store |v_#memory_int_28| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_28| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_28| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_28| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= .cse0 0))) [2019-01-31 14:43:43,034 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-31 14:43:43,175 INFO L273 TraceCheckUtils]: 0: Hoare triple {102#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {109#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:43:43,177 INFO L273 TraceCheckUtils]: 1: Hoare triple {109#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {113#(and (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)))} is VALID [2019-01-31 14:43:43,179 INFO L273 TraceCheckUtils]: 2: Hoare triple {113#(and (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)))} assume !(#memory_int[main_p1] >= 0); {103#false} is VALID [2019-01-31 14:43:43,179 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:43:43,180 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:43:43,218 INFO L273 TraceCheckUtils]: 2: Hoare triple {117#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {103#false} is VALID [2019-01-31 14:43:43,220 INFO L273 TraceCheckUtils]: 1: Hoare triple {121#(<= 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]; {117#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:43:43,222 INFO L273 TraceCheckUtils]: 0: Hoare triple {102#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {121#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:43:43,223 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:43:43,244 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:43:43,245 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-31 14:43:43,245 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:43:43,246 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-31 14:43:43,246 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:43:43,247 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-31 14:43:43,271 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 6 edges. 6 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:43:43,272 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-31 14:43:43,272 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-31 14:43:43,272 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-31 14:43:43,273 INFO L87 Difference]: Start difference. First operand 12 states and 21 transitions. Second operand 6 states. [2019-01-31 14:43:43,982 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:43,982 INFO L93 Difference]: Finished difference Result 39 states and 56 transitions. [2019-01-31 14:43:43,982 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-31 14:43:43,982 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-31 14:43:43,983 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:43:43,983 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:43:43,985 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 56 transitions. [2019-01-31 14:43:43,985 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:43:43,987 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 56 transitions. [2019-01-31 14:43:43,987 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 56 transitions. [2019-01-31 14:43:44,084 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 56 edges. 56 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:43:44,088 INFO L225 Difference]: With dead ends: 39 [2019-01-31 14:43:44,088 INFO L226 Difference]: Without dead ends: 37 [2019-01-31 14:43:44,089 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 7 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.8s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-01-31 14:43:44,089 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 37 states. [2019-01-31 14:43:44,106 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 37 to 16. [2019-01-31 14:43:44,106 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:43:44,106 INFO L82 GeneralOperation]: Start isEquivalent. First operand 37 states. Second operand 16 states. [2019-01-31 14:43:44,106 INFO L74 IsIncluded]: Start isIncluded. First operand 37 states. Second operand 16 states. [2019-01-31 14:43:44,106 INFO L87 Difference]: Start difference. First operand 37 states. Second operand 16 states. [2019-01-31 14:43:44,110 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:44,110 INFO L93 Difference]: Finished difference Result 37 states and 53 transitions. [2019-01-31 14:43:44,111 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 53 transitions. [2019-01-31 14:43:44,111 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:43:44,111 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:43:44,111 INFO L74 IsIncluded]: Start isIncluded. First operand 16 states. Second operand 37 states. [2019-01-31 14:43:44,112 INFO L87 Difference]: Start difference. First operand 16 states. Second operand 37 states. [2019-01-31 14:43:44,114 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:44,115 INFO L93 Difference]: Finished difference Result 37 states and 53 transitions. [2019-01-31 14:43:44,115 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 53 transitions. [2019-01-31 14:43:44,115 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:43:44,116 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:43:44,116 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:43:44,116 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:43:44,116 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 16 states. [2019-01-31 14:43:44,118 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 32 transitions. [2019-01-31 14:43:44,118 INFO L78 Accepts]: Start accepts. Automaton has 16 states and 32 transitions. Word has length 3 [2019-01-31 14:43:44,118 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:43:44,118 INFO L480 AbstractCegarLoop]: Abstraction has 16 states and 32 transitions. [2019-01-31 14:43:44,118 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-31 14:43:44,118 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 32 transitions. [2019-01-31 14:43:44,119 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-31 14:43:44,119 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:43:44,119 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-31 14:43:44,119 INFO L423 AbstractCegarLoop]: === Iteration 3 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:43:44,120 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:43:44,120 INFO L82 PathProgramCache]: Analyzing trace with hash 30434, now seen corresponding path program 1 times [2019-01-31 14:43:44,120 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:43:44,121 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:43:44,121 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:43:44,121 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:43:44,121 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:43:44,136 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:44,238 INFO L273 TraceCheckUtils]: 0: Hoare triple {262#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {264#(and (or (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1))) (= (select |#memory_int| ULTIMATE.start_main_p5) 0))} is VALID [2019-01-31 14:43:44,240 INFO L273 TraceCheckUtils]: 1: Hoare triple {264#(and (or (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1))) (= (select |#memory_int| ULTIMATE.start_main_p5) 0))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {265#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:43:44,240 INFO L273 TraceCheckUtils]: 2: Hoare triple {265#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {263#false} is VALID [2019-01-31 14:43:44,241 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:43:44,241 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:43:44,241 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:43:44,241 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-01-31 14:43:44,241 INFO L207 CegarAbsIntRunner]: [0], [20], [23] [2019-01-31 14:43:44,243 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:43:44,243 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:43:44,263 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:43:44,263 INFO L272 AbstractInterpreter]: Visited 3 different actions 3 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 2. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-31 14:43:44,264 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:43:44,264 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:43:44,264 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:43:44,264 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:43:44,272 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:43:44,273 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:43:44,293 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:44,312 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:44,312 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:43:44,364 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:44,366 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-31 14:43:44,407 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:44,408 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:44,410 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-31 14:43:44,465 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:44,466 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:44,467 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:44,468 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:44,471 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 25 [2019-01-31 14:43:44,480 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:44,493 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:44,558 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:44,577 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 21 [2019-01-31 14:43:44,589 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 5 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 27 [2019-01-31 14:43:44,602 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 6 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:43:44,626 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:43:44,648 INFO L478 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 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:43:44,652 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:44,673 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:44,691 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:44,710 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:44,723 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:44,761 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 2 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:43:44,762 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 5 variables, input treesize:52, output treesize:50 [2019-01-31 14:43:44,777 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:44,777 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_30|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, |v_#valid_8|]. (let ((.cse0 (store |v_#valid_8| ULTIMATE.start_main_p1 1))) (let ((.cse1 (store .cse0 ULTIMATE.start_main_p2 1))) (and (= 0 (select .cse0 ULTIMATE.start_main_p2)) (= (store (store (store (store (store |v_#memory_int_30| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (= 0 (select (store .cse1 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4)) (= (select .cse1 ULTIMATE.start_main_p3) 0)))) [2019-01-31 14:43:44,777 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:43:44,974 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:45,024 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 7 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 8 case distinctions, treesize of input 36 treesize of output 66 [2019-01-31 14:43:45,038 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 16 xjuncts. [2019-01-31 14:43:45,311 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 16 dim-0 vars, and 5 xjuncts. [2019-01-31 14:43:45,312 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:60, output treesize:183 [2019-01-31 14:43:57,846 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:57,847 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_31|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_31| ULTIMATE.start_main_p5))) (and (= (select |v_#memory_int_31| ULTIMATE.start_main_p2) 0) (= 0 (select |v_#memory_int_31| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_31| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= .cse0 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (store |v_#memory_int_31| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_31| ULTIMATE.start_main_p1) 0))) [2019-01-31 14:43:57,847 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_9, v_prenex_6, v_prenex_8, v_prenex_7, v_prenex_11, v_prenex_12, v_prenex_10, v_prenex_3, v_prenex_1, v_prenex_2, v_prenex_5, v_prenex_4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse1 (select |#memory_int| ULTIMATE.start_main_p1))) (let ((.cse0 (= .cse1 0))) (or (and (not (= v_prenex_11 v_prenex_12)) (= 1 (select |#memory_int| v_prenex_10)) .cse0 (not (= v_prenex_11 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_11) 0) (not (= ULTIMATE.start_main_p1 v_prenex_12)) (= (select |#memory_int| v_prenex_12) 0)) (and (not (= v_prenex_3 v_prenex_1)) (= .cse1 1) (not (= v_prenex_3 v_prenex_2)) (not (= v_prenex_2 v_prenex_1)) (= 0 (select |#memory_int| v_prenex_2)) (= (select |#memory_int| v_prenex_3) 0) (= (select |#memory_int| v_prenex_1) 0)) (and (not (= v_prenex_9 v_prenex_6)) (not (= v_prenex_9 v_prenex_8)) .cse0 (not (= v_prenex_8 ULTIMATE.start_main_p1)) (not (= v_prenex_8 v_prenex_6)) (= 1 (select |#memory_int| v_prenex_7)) (= 0 (select |#memory_int| v_prenex_8)) (not (= v_prenex_9 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_9) 0) (not (= ULTIMATE.start_main_p1 v_prenex_6)) (= (select |#memory_int| v_prenex_6) 0)) (and (not (= v_prenex_5 v_prenex_4)) .cse0 (not (= v_prenex_4 ULTIMATE.start_main_p1)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| v_prenex_4)) (not (= v_prenex_5 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_5) 0)) (and .cse0 (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))) [2019-01-31 14:44:00,718 WARN L181 SmtUtils]: Spent 2.72 s on a formula simplification. DAG size of input: 111 DAG size of output: 45 [2019-01-31 14:44:00,727 INFO L273 TraceCheckUtils]: 0: Hoare triple {262#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {269#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (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 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-31 14:44:00,730 INFO L273 TraceCheckUtils]: 1: Hoare triple {269#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (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 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {273#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_2 Int) (v_prenex_3 Int) (v_prenex_1 Int)) (and (not (= v_prenex_3 v_prenex_2)) (= (select |#memory_int| v_prenex_1) 0) (= (select |#memory_int| v_prenex_3) 0) (not (= v_prenex_3 v_prenex_1)) (= 0 (select |#memory_int| v_prenex_2)) (not (= v_prenex_2 v_prenex_1))))) (and (exists ((v_prenex_12 Int) (v_prenex_11 Int)) (and (= (select |#memory_int| v_prenex_12) 0) (not (= v_prenex_11 ULTIMATE.start_main_p1)) (not (= v_prenex_11 v_prenex_12)) (not (= ULTIMATE.start_main_p1 v_prenex_12)) (= (select |#memory_int| v_prenex_11) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_10 Int)) (= 1 (select |#memory_int| v_prenex_10)))))} is VALID [2019-01-31 14:44:00,731 INFO L273 TraceCheckUtils]: 2: Hoare triple {273#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_2 Int) (v_prenex_3 Int) (v_prenex_1 Int)) (and (not (= v_prenex_3 v_prenex_2)) (= (select |#memory_int| v_prenex_1) 0) (= (select |#memory_int| v_prenex_3) 0) (not (= v_prenex_3 v_prenex_1)) (= 0 (select |#memory_int| v_prenex_2)) (not (= v_prenex_2 v_prenex_1))))) (and (exists ((v_prenex_12 Int) (v_prenex_11 Int)) (and (= (select |#memory_int| v_prenex_12) 0) (not (= v_prenex_11 ULTIMATE.start_main_p1)) (not (= v_prenex_11 v_prenex_12)) (not (= ULTIMATE.start_main_p1 v_prenex_12)) (= (select |#memory_int| v_prenex_11) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_10 Int)) (= 1 (select |#memory_int| v_prenex_10)))))} assume !(#memory_int[main_p1] >= 0); {263#false} is VALID [2019-01-31 14:44:00,731 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:00,732 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:44:00,742 INFO L273 TraceCheckUtils]: 2: Hoare triple {265#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {263#false} is VALID [2019-01-31 14:44:00,743 INFO L273 TraceCheckUtils]: 1: Hoare triple {280#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {265#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:44:00,746 INFO L273 TraceCheckUtils]: 0: Hoare triple {262#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {280#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:44:00,746 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:00,766 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-01-31 14:44:00,766 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 5 [2019-01-31 14:44:00,766 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-31 14:44:00,767 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 3 [2019-01-31 14:44:00,767 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:44:00,767 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-31 14:44:00,774 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 3 edges. 3 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:00,774 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-31 14:44:00,774 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-31 14:44:00,774 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=19, Invalid=23, Unknown=0, NotChecked=0, Total=42 [2019-01-31 14:44:00,774 INFO L87 Difference]: Start difference. First operand 16 states and 32 transitions. Second operand 4 states. [2019-01-31 14:44:00,871 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:00,872 INFO L93 Difference]: Finished difference Result 18 states and 39 transitions. [2019-01-31 14:44:00,872 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-31 14:44:00,872 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 3 [2019-01-31 14:44:00,872 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:44:00,872 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-31 14:44:00,873 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 22 transitions. [2019-01-31 14:44:00,873 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-31 14:44:00,874 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 22 transitions. [2019-01-31 14:44:00,874 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 22 transitions. [2019-01-31 14:44:00,906 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 22 edges. 22 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:00,907 INFO L225 Difference]: With dead ends: 18 [2019-01-31 14:44:00,907 INFO L226 Difference]: Without dead ends: 17 [2019-01-31 14:44:00,908 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 6 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 5 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 8 ImplicationChecksByTransitivity, 3.0s TimeCoverageRelationStatistics Valid=19, Invalid=23, Unknown=0, NotChecked=0, Total=42 [2019-01-31 14:44:00,908 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 17 states. [2019-01-31 14:44:00,927 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 17 to 17. [2019-01-31 14:44:00,927 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:44:00,928 INFO L82 GeneralOperation]: Start isEquivalent. First operand 17 states. Second operand 17 states. [2019-01-31 14:44:00,928 INFO L74 IsIncluded]: Start isIncluded. First operand 17 states. Second operand 17 states. [2019-01-31 14:44:00,928 INFO L87 Difference]: Start difference. First operand 17 states. Second operand 17 states. [2019-01-31 14:44:00,930 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:00,930 INFO L93 Difference]: Finished difference Result 17 states and 38 transitions. [2019-01-31 14:44:00,930 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 38 transitions. [2019-01-31 14:44:00,931 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:00,931 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:00,931 INFO L74 IsIncluded]: Start isIncluded. First operand 17 states. Second operand 17 states. [2019-01-31 14:44:00,932 INFO L87 Difference]: Start difference. First operand 17 states. Second operand 17 states. [2019-01-31 14:44:00,933 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:00,934 INFO L93 Difference]: Finished difference Result 17 states and 38 transitions. [2019-01-31 14:44:00,934 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 38 transitions. [2019-01-31 14:44:00,934 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:00,934 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:00,934 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:44:00,935 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:44:00,935 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 17 states. [2019-01-31 14:44:00,936 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 38 transitions. [2019-01-31 14:44:00,936 INFO L78 Accepts]: Start accepts. Automaton has 17 states and 38 transitions. Word has length 3 [2019-01-31 14:44:00,937 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:44:00,937 INFO L480 AbstractCegarLoop]: Abstraction has 17 states and 38 transitions. [2019-01-31 14:44:00,937 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-31 14:44:00,937 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 38 transitions. [2019-01-31 14:44:00,937 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-31 14:44:00,938 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:44:00,938 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-31 14:44:00,938 INFO L423 AbstractCegarLoop]: === Iteration 4 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:44:00,938 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:00,938 INFO L82 PathProgramCache]: Analyzing trace with hash 30560, now seen corresponding path program 1 times [2019-01-31 14:44:00,939 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:44:00,940 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:00,940 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:00,940 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:00,940 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:44:00,947 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:01,027 INFO L273 TraceCheckUtils]: 0: Hoare triple {360#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {362#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:01,038 INFO L273 TraceCheckUtils]: 1: Hoare triple {362#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {362#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:01,039 INFO L273 TraceCheckUtils]: 2: Hoare triple {362#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {361#false} is VALID [2019-01-31 14:44:01,039 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:01,039 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-01-31 14:44:01,039 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [1] imperfect sequences [] total 1 [2019-01-31 14:44:01,039 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-31 14:44:01,040 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 3 [2019-01-31 14:44:01,040 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:44:01,040 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2019-01-31 14:44:01,046 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 3 edges. 3 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:01,046 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2019-01-31 14:44:01,046 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2019-01-31 14:44:01,047 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-31 14:44:01,047 INFO L87 Difference]: Start difference. First operand 17 states and 38 transitions. Second operand 3 states. [2019-01-31 14:44:01,128 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:01,128 INFO L93 Difference]: Finished difference Result 21 states and 39 transitions. [2019-01-31 14:44:01,128 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-31 14:44:01,129 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 3 [2019-01-31 14:44:01,129 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:44:01,129 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-31 14:44:01,130 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 27 transitions. [2019-01-31 14:44:01,130 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-31 14:44:01,131 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 27 transitions. [2019-01-31 14:44:01,131 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 27 transitions. [2019-01-31 14:44:01,182 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 27 edges. 27 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:01,184 INFO L225 Difference]: With dead ends: 21 [2019-01-31 14:44:01,184 INFO L226 Difference]: Without dead ends: 20 [2019-01-31 14:44:01,186 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 1 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-31 14:44:01,186 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 20 states. [2019-01-31 14:44:01,204 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 20 to 17. [2019-01-31 14:44:01,204 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:44:01,204 INFO L82 GeneralOperation]: Start isEquivalent. First operand 20 states. Second operand 17 states. [2019-01-31 14:44:01,204 INFO L74 IsIncluded]: Start isIncluded. First operand 20 states. Second operand 17 states. [2019-01-31 14:44:01,205 INFO L87 Difference]: Start difference. First operand 20 states. Second operand 17 states. [2019-01-31 14:44:01,207 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:01,207 INFO L93 Difference]: Finished difference Result 20 states and 38 transitions. [2019-01-31 14:44:01,208 INFO L276 IsEmpty]: Start isEmpty. Operand 20 states and 38 transitions. [2019-01-31 14:44:01,208 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:01,208 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:01,208 INFO L74 IsIncluded]: Start isIncluded. First operand 17 states. Second operand 20 states. [2019-01-31 14:44:01,209 INFO L87 Difference]: Start difference. First operand 17 states. Second operand 20 states. [2019-01-31 14:44:01,210 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:01,210 INFO L93 Difference]: Finished difference Result 20 states and 38 transitions. [2019-01-31 14:44:01,210 INFO L276 IsEmpty]: Start isEmpty. Operand 20 states and 38 transitions. [2019-01-31 14:44:01,211 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:01,211 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:01,211 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:44:01,211 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:44:01,211 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 17 states. [2019-01-31 14:44:01,212 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 37 transitions. [2019-01-31 14:44:01,212 INFO L78 Accepts]: Start accepts. Automaton has 17 states and 37 transitions. Word has length 3 [2019-01-31 14:44:01,212 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:44:01,212 INFO L480 AbstractCegarLoop]: Abstraction has 17 states and 37 transitions. [2019-01-31 14:44:01,213 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2019-01-31 14:44:01,213 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 37 transitions. [2019-01-31 14:44:01,213 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-31 14:44:01,213 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:44:01,213 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-31 14:44:01,213 INFO L423 AbstractCegarLoop]: === Iteration 5 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:44:01,214 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:01,214 INFO L82 PathProgramCache]: Analyzing trace with hash 30124, now seen corresponding path program 1 times [2019-01-31 14:44:01,214 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:44:01,215 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:01,215 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:01,215 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:01,215 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:44:01,227 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:01,343 INFO L273 TraceCheckUtils]: 0: Hoare triple {451#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {453#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:44:01,344 INFO L273 TraceCheckUtils]: 1: Hoare triple {453#(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]; {454#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:44:01,348 INFO L273 TraceCheckUtils]: 2: Hoare triple {454#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {452#false} is VALID [2019-01-31 14:44:01,348 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:01,348 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:01,349 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:44:01,349 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-01-31 14:44:01,349 INFO L207 CegarAbsIntRunner]: [0], [10], [23] [2019-01-31 14:44:01,350 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:44:01,350 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:44:01,360 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:44:01,360 INFO L272 AbstractInterpreter]: Visited 3 different actions 3 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 2. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-31 14:44:01,360 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:01,360 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:44:01,361 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:01,361 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:44:01,371 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:01,371 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:44:01,376 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:01,380 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:01,380 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:44:01,451 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 21 [2019-01-31 14:44:01,457 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 27 [2019-01-31 14:44:01,464 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,466 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,467 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:44:01,486 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,487 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,489 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,490 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:44:01,516 INFO L478 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 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:44:01,519 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:01,540 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:01,558 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:01,585 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:01,605 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:01,631 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,633 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-31 14:44:01,693 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,694 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,695 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-31 14:44:01,799 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,800 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,801 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,803 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,804 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 25 [2019-01-31 14:44:01,807 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:01,818 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:01,826 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:01,861 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 2 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:01,861 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 5 variables, input treesize:52, output treesize:50 [2019-01-31 14:44:01,871 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:01,872 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_33|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, |v_#valid_9|]. (let ((.cse0 (store |v_#valid_9| ULTIMATE.start_main_p1 1))) (let ((.cse1 (store .cse0 ULTIMATE.start_main_p2 1))) (and (= (select .cse0 ULTIMATE.start_main_p2) 0) (= (select .cse1 ULTIMATE.start_main_p3) 0) (= (store (store (store (store (store |v_#memory_int_33| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (= (select (store .cse1 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4) 0)))) [2019-01-31 14:44:01,872 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:44:01,963 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,965 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:44:01,970 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:01,998 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:01,999 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:55, output treesize:33 [2019-01-31 14:44:02,028 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:02,028 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_34|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_34| ULTIMATE.start_main_p2))) (and (= |#memory_int| (store |v_#memory_int_34| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_34| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= .cse0 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_34| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_34| ULTIMATE.start_main_p3) 0))) [2019-01-31 14:44:02,029 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:44:02,055 INFO L273 TraceCheckUtils]: 0: Hoare triple {451#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {458#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-31 14:44:02,058 INFO L273 TraceCheckUtils]: 1: Hoare triple {458#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {462#(and (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-31 14:44:02,059 INFO L273 TraceCheckUtils]: 2: Hoare triple {462#(and (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} assume !(#memory_int[main_p1] >= 0); {452#false} is VALID [2019-01-31 14:44:02,059 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:02,059 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:44:02,081 INFO L273 TraceCheckUtils]: 2: Hoare triple {466#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {452#false} is VALID [2019-01-31 14:44:02,083 INFO L273 TraceCheckUtils]: 1: Hoare triple {470#(<= 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]; {466#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:44:02,085 INFO L273 TraceCheckUtils]: 0: Hoare triple {451#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {470#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:44:02,085 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:02,106 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:44:02,106 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-31 14:44:02,106 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:44:02,106 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-31 14:44:02,106 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:44:02,107 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-31 14:44:02,135 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 6 edges. 6 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:02,135 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-31 14:44:02,135 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-31 14:44:02,135 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-31 14:44:02,136 INFO L87 Difference]: Start difference. First operand 17 states and 37 transitions. Second operand 6 states. [2019-01-31 14:44:02,655 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:02,655 INFO L93 Difference]: Finished difference Result 39 states and 66 transitions. [2019-01-31 14:44:02,655 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-31 14:44:02,656 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-31 14:44:02,656 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:44:02,656 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:44:02,658 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 54 transitions. [2019-01-31 14:44:02,658 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:44:02,659 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 54 transitions. [2019-01-31 14:44:02,659 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 54 transitions. [2019-01-31 14:44:02,757 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 54 edges. 54 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:02,759 INFO L225 Difference]: With dead ends: 39 [2019-01-31 14:44:02,759 INFO L226 Difference]: Without dead ends: 38 [2019-01-31 14:44:02,760 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 7 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-01-31 14:44:02,760 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 38 states. [2019-01-31 14:44:02,837 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 38 to 18. [2019-01-31 14:44:02,837 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:44:02,837 INFO L82 GeneralOperation]: Start isEquivalent. First operand 38 states. Second operand 18 states. [2019-01-31 14:44:02,837 INFO L74 IsIncluded]: Start isIncluded. First operand 38 states. Second operand 18 states. [2019-01-31 14:44:02,838 INFO L87 Difference]: Start difference. First operand 38 states. Second operand 18 states. [2019-01-31 14:44:02,840 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:02,840 INFO L93 Difference]: Finished difference Result 38 states and 64 transitions. [2019-01-31 14:44:02,840 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 64 transitions. [2019-01-31 14:44:02,841 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:02,841 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:02,841 INFO L74 IsIncluded]: Start isIncluded. First operand 18 states. Second operand 38 states. [2019-01-31 14:44:02,841 INFO L87 Difference]: Start difference. First operand 18 states. Second operand 38 states. [2019-01-31 14:44:02,843 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:02,844 INFO L93 Difference]: Finished difference Result 38 states and 64 transitions. [2019-01-31 14:44:02,844 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 64 transitions. [2019-01-31 14:44:02,844 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:02,844 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:02,845 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:44:02,845 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:44:02,845 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 18 states. [2019-01-31 14:44:02,846 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 43 transitions. [2019-01-31 14:44:02,846 INFO L78 Accepts]: Start accepts. Automaton has 18 states and 43 transitions. Word has length 3 [2019-01-31 14:44:02,846 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:44:02,846 INFO L480 AbstractCegarLoop]: Abstraction has 18 states and 43 transitions. [2019-01-31 14:44:02,847 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-31 14:44:02,847 INFO L276 IsEmpty]: Start isEmpty. Operand 18 states and 43 transitions. [2019-01-31 14:44:02,847 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:44:02,847 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:44:02,847 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:44:02,848 INFO L423 AbstractCegarLoop]: === Iteration 6 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:44:02,848 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:02,848 INFO L82 PathProgramCache]: Analyzing trace with hash 941462, now seen corresponding path program 1 times [2019-01-31 14:44:02,848 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:44:02,849 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:02,849 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:02,849 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:02,850 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:44:02,860 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:03,000 INFO L273 TraceCheckUtils]: 0: Hoare triple {619#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {621#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:44:03,002 INFO L273 TraceCheckUtils]: 1: Hoare triple {621#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 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]; {622#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:44:03,020 INFO L273 TraceCheckUtils]: 2: Hoare triple {622#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {623#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:44:03,034 INFO L273 TraceCheckUtils]: 3: Hoare triple {623#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {620#false} is VALID [2019-01-31 14:44:03,035 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:03,035 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:03,035 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:44:03,035 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-31 14:44:03,035 INFO L207 CegarAbsIntRunner]: [0], [18], [20], [23] [2019-01-31 14:44:03,036 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:44:03,037 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:44:03,072 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:44:03,072 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 2. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:44:03,073 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:03,073 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:44:03,073 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:03,073 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:44:03,082 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:03,083 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:44:03,088 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:03,091 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:03,092 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:44:03,236 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 21 [2019-01-31 14:44:03,246 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 27 [2019-01-31 14:44:03,349 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:03,370 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:03,371 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:44:03,468 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:03,470 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:03,473 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:03,475 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:44:03,525 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:44:03,528 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:03,569 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:03,589 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:03,604 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:03,618 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:03,649 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:03,650 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-31 14:44:03,703 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:03,704 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:03,705 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-31 14:44:03,764 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:03,766 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:03,767 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:03,768 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:03,769 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 25 [2019-01-31 14:44:03,772 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:03,781 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:03,792 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:03,831 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:03,831 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:52, output treesize:50 [2019-01-31 14:44:03,850 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:03,850 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_36|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, |v_#valid_10|]. (let ((.cse1 (store |v_#valid_10| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= 0 (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4)) (= (store (store (store (store (store |v_#memory_int_36| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (= (select .cse1 ULTIMATE.start_main_p2) 0) (= 0 (select .cse0 ULTIMATE.start_main_p3))))) [2019-01-31 14:44:03,851 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:44:03,923 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:03,933 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 7 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 2 case distinctions, treesize of input 36 treesize of output 54 [2019-01-31 14:44:03,937 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 2 xjuncts. [2019-01-31 14:44:04,032 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 5 dim-0 vars, and 2 xjuncts. [2019-01-31 14:44:04,033 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:60, output treesize:74 [2019-01-31 14:44:04,359 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:04,360 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_37|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_37| ULTIMATE.start_main_p4))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_37| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_37| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 .cse0) (= 0 (select |v_#memory_int_37| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_37| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= |#memory_int| (store |v_#memory_int_37| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-31 14:44:04,360 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_14, v_prenex_13, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse1 (select |#memory_int| ULTIMATE.start_main_p5)) (.cse0 (= (select |#memory_int| ULTIMATE.start_main_p1) 0))) (or (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) .cse0 (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= 0 (+ .cse1 1))) (and (= 0 .cse1) (not (= v_prenex_14 v_prenex_13)) .cse0 (not (= v_prenex_13 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| v_prenex_13)) (not (= v_prenex_14 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_14) 0)))) [2019-01-31 14:44:04,607 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:04,608 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:04,608 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:04,609 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:04,617 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:04,618 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:04,620 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:04,644 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 6 case distinctions, treesize of input 50 treesize of output 80 [2019-01-31 14:44:04,651 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 8 xjuncts. [2019-01-31 14:44:04,842 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:04,844 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:04,845 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:04,846 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:04,847 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:04,848 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:44:04,850 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 45 treesize of output 51 [2019-01-31 14:44:04,853 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:05,063 INFO L267 ElimStorePlain]: Start of recursive call 1: 7 dim-0 vars, 2 dim-1 vars, End of recursive call: 16 dim-0 vars, and 5 xjuncts. [2019-01-31 14:44:05,064 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 9 variables, input treesize:96, output treesize:167 [2019-01-31 14:44:17,899 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:17,899 WARN L398 uantifierElimination]: Input elimination task: ∃ [v_prenex_16, v_prenex_15, v_prenex_13, v_prenex_14, ULTIMATE.start_main_p4, |v_#memory_int_38|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (or (let ((.cse0 (+ (select |v_#memory_int_38| ULTIMATE.start_main_p5) 1))) (and (= .cse0 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_38| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_38| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_38| ULTIMATE.start_main_p1)) (= |#memory_int| (store |v_#memory_int_38| ULTIMATE.start_main_p5 .cse0)))) (let ((.cse1 (select v_prenex_16 v_prenex_15))) (and (= 0 (select v_prenex_16 v_prenex_13)) (= 0 .cse1) (not (= v_prenex_13 ULTIMATE.start_main_p1)) (= (select v_prenex_16 v_prenex_14) 0) (not (= v_prenex_14 v_prenex_13)) (= 0 (+ (select v_prenex_16 ULTIMATE.start_main_p4) 1)) (= 0 (select v_prenex_16 ULTIMATE.start_main_p1)) (not (= v_prenex_14 ULTIMATE.start_main_p1)) (= |#memory_int| (store v_prenex_16 v_prenex_15 (+ .cse1 1)))))) [2019-01-31 14:44:17,899 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_15, v_prenex_19, v_prenex_17, v_prenex_18, v_prenex_20, v_prenex_21, v_prenex_22, v_prenex_24, v_prenex_25, v_prenex_23, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2, v_prenex_13, ULTIMATE.start_main_p4, v_prenex_14]. (let ((.cse1 (select |#memory_int| ULTIMATE.start_main_p1))) (let ((.cse0 (= .cse1 0))) (or (and .cse0 (= (+ (select |#memory_int| v_prenex_20) 1) 0) (= 0 (select |#memory_int| v_prenex_21)) (= (select |#memory_int| v_prenex_22) 1) (not (= v_prenex_21 ULTIMATE.start_main_p1))) (and (= .cse1 1) (= (select |#memory_int| v_prenex_24) 0) (= (+ (select |#memory_int| v_prenex_25) 1) 0) (not (= v_prenex_23 v_prenex_24)) (= 0 (select |#memory_int| v_prenex_23))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) .cse0 (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) (and (= 1 (select |#memory_int| v_prenex_15)) (= (select |#memory_int| v_prenex_19) 0) (not (= v_prenex_19 ULTIMATE.start_main_p1)) .cse0 (= (+ (select |#memory_int| v_prenex_17) 1) 0) (not (= v_prenex_18 v_prenex_19)) (= 0 (select |#memory_int| v_prenex_18)) (not (= v_prenex_18 ULTIMATE.start_main_p1))) (and (= (select |#memory_int| v_prenex_13) 0) (not (= v_prenex_13 ULTIMATE.start_main_p1)) .cse0 (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| v_prenex_14)))))) [2019-01-31 14:44:18,062 WARN L181 SmtUtils]: Spent 119.00 ms on a formula simplification. DAG size of input: 106 DAG size of output: 65 [2019-01-31 14:44:18,074 INFO L273 TraceCheckUtils]: 0: Hoare triple {619#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {627#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:44:18,076 INFO L273 TraceCheckUtils]: 1: Hoare triple {627#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {631#(or (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((v_prenex_14 Int) (v_prenex_13 Int)) (and (= (select |#memory_int| v_prenex_14) 0) (not (= v_prenex_13 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| v_prenex_13)) (not (= v_prenex_14 v_prenex_13)) (not (= v_prenex_14 ULTIMATE.start_main_p1))))) (and (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1))))} is VALID [2019-01-31 14:44:18,079 INFO L273 TraceCheckUtils]: 2: Hoare triple {631#(or (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((v_prenex_14 Int) (v_prenex_13 Int)) (and (= (select |#memory_int| v_prenex_14) 0) (not (= v_prenex_13 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| v_prenex_13)) (not (= v_prenex_14 v_prenex_13)) (not (= v_prenex_14 ULTIMATE.start_main_p1))))) (and (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1))))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {635#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)))) (and (exists ((v_prenex_14 Int)) (= 1 (select |#memory_int| v_prenex_14))) (exists ((v_prenex_13 Int)) (and (= (select |#memory_int| v_prenex_13) 0) (not (= v_prenex_13 ULTIMATE.start_main_p1)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_25 Int)) (= (+ (select |#memory_int| v_prenex_25) 1) 0)) (exists ((v_prenex_23 Int) (v_prenex_24 Int)) (and (not (= v_prenex_23 v_prenex_24)) (= (select |#memory_int| v_prenex_24) 0) (= 0 (select |#memory_int| v_prenex_23))))))} is VALID [2019-01-31 14:44:18,081 INFO L273 TraceCheckUtils]: 3: Hoare triple {635#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)))) (and (exists ((v_prenex_14 Int)) (= 1 (select |#memory_int| v_prenex_14))) (exists ((v_prenex_13 Int)) (and (= (select |#memory_int| v_prenex_13) 0) (not (= v_prenex_13 ULTIMATE.start_main_p1)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_25 Int)) (= (+ (select |#memory_int| v_prenex_25) 1) 0)) (exists ((v_prenex_23 Int) (v_prenex_24 Int)) (and (not (= v_prenex_23 v_prenex_24)) (= (select |#memory_int| v_prenex_24) 0) (= 0 (select |#memory_int| v_prenex_23))))))} assume !(#memory_int[main_p1] >= 0); {620#false} is VALID [2019-01-31 14:44:18,083 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:18,083 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:44:18,158 INFO L273 TraceCheckUtils]: 3: Hoare triple {639#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {620#false} is VALID [2019-01-31 14:44:18,160 INFO L273 TraceCheckUtils]: 2: Hoare triple {643#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {639#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:44:18,162 INFO L273 TraceCheckUtils]: 1: Hoare triple {647#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {643#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:44:18,164 INFO L273 TraceCheckUtils]: 0: Hoare triple {619#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {647#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:44:18,164 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:18,185 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:44:18,185 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:44:18,186 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:44:18,186 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:44:18,186 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:44:18,186 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:44:18,201 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:18,201 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:44:18,201 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:44:18,202 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=41, Invalid=69, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:44:18,202 INFO L87 Difference]: Start difference. First operand 18 states and 43 transitions. Second operand 8 states. [2019-01-31 14:44:18,763 WARN L181 SmtUtils]: Spent 122.00 ms on a formula simplification. DAG size of input: 73 DAG size of output: 53 [2019-01-31 14:44:19,479 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:19,479 INFO L93 Difference]: Finished difference Result 59 states and 105 transitions. [2019-01-31 14:44:19,480 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:44:19,480 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:44:19,480 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:44:19,480 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:44:19,482 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 81 transitions. [2019-01-31 14:44:19,482 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:44:19,483 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 81 transitions. [2019-01-31 14:44:19,483 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 81 transitions. [2019-01-31 14:44:19,677 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 81 edges. 81 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:19,679 INFO L225 Difference]: With dead ends: 59 [2019-01-31 14:44:19,680 INFO L226 Difference]: Without dead ends: 55 [2019-01-31 14:44:19,680 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 12 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 12 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 24 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=70, Invalid=112, Unknown=0, NotChecked=0, Total=182 [2019-01-31 14:44:19,681 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 55 states. [2019-01-31 14:44:19,785 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 55 to 20. [2019-01-31 14:44:19,786 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:44:19,786 INFO L82 GeneralOperation]: Start isEquivalent. First operand 55 states. Second operand 20 states. [2019-01-31 14:44:19,786 INFO L74 IsIncluded]: Start isIncluded. First operand 55 states. Second operand 20 states. [2019-01-31 14:44:19,786 INFO L87 Difference]: Start difference. First operand 55 states. Second operand 20 states. [2019-01-31 14:44:19,788 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:19,788 INFO L93 Difference]: Finished difference Result 55 states and 99 transitions. [2019-01-31 14:44:19,788 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 99 transitions. [2019-01-31 14:44:19,789 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:19,789 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:19,789 INFO L74 IsIncluded]: Start isIncluded. First operand 20 states. Second operand 55 states. [2019-01-31 14:44:19,789 INFO L87 Difference]: Start difference. First operand 20 states. Second operand 55 states. [2019-01-31 14:44:19,792 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:19,792 INFO L93 Difference]: Finished difference Result 55 states and 99 transitions. [2019-01-31 14:44:19,793 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 99 transitions. [2019-01-31 14:44:19,793 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:19,793 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:19,794 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:44:19,794 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:44:19,794 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 20 states. [2019-01-31 14:44:19,795 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 59 transitions. [2019-01-31 14:44:19,795 INFO L78 Accepts]: Start accepts. Automaton has 20 states and 59 transitions. Word has length 4 [2019-01-31 14:44:19,795 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:44:19,795 INFO L480 AbstractCegarLoop]: Abstraction has 20 states and 59 transitions. [2019-01-31 14:44:19,796 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:44:19,796 INFO L276 IsEmpty]: Start isEmpty. Operand 20 states and 59 transitions. [2019-01-31 14:44:19,796 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:44:19,796 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:44:19,796 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:44:19,797 INFO L423 AbstractCegarLoop]: === Iteration 7 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:44:19,797 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:19,797 INFO L82 PathProgramCache]: Analyzing trace with hash 941588, now seen corresponding path program 1 times [2019-01-31 14:44:19,797 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:44:19,798 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:19,798 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:19,798 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:19,798 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:44:19,806 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:19,947 INFO L273 TraceCheckUtils]: 0: Hoare triple {863#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {865#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:44:19,948 INFO L273 TraceCheckUtils]: 1: Hoare triple {865#(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]; {866#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:19,949 INFO L273 TraceCheckUtils]: 2: Hoare triple {866#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {866#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:19,949 INFO L273 TraceCheckUtils]: 3: Hoare triple {866#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {864#false} is VALID [2019-01-31 14:44:19,949 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:19,949 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:19,950 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:44:19,950 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-31 14:44:19,950 INFO L207 CegarAbsIntRunner]: [0], [18], [24], [25] [2019-01-31 14:44:19,952 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:44:19,952 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:44:19,978 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:44:19,978 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 2. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-31 14:44:19,978 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:19,978 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:44:19,978 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:19,978 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:44:19,989 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:19,989 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:44:19,993 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:20,001 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:20,001 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:44:20,020 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 21 [2019-01-31 14:44:20,043 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:44:20,057 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:20,059 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:20,060 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 33 [2019-01-31 14:44:20,079 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:20,080 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:20,081 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:20,082 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 5 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 47 [2019-01-31 14:44:20,115 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 5 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 46 [2019-01-31 14:44:20,123 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:20,142 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:20,157 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:20,168 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:20,178 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:20,195 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 25 [2019-01-31 14:44:20,265 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:20,317 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:20,319 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 38 [2019-01-31 14:44:20,377 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:20,379 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:20,381 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:20,382 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:20,383 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 21 [2019-01-31 14:44:20,385 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:20,396 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:20,406 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:20,429 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 2 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:20,429 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 5 variables, input treesize:44, output treesize:46 [2019-01-31 14:44:20,436 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:20,437 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_41|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, |v_#valid_11|]. (let ((.cse0 (store (store |v_#valid_11| ULTIMATE.start_main_p1 1) ULTIMATE.start_main_p2 1))) (and (= (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4) 0) (= (select .cse0 ULTIMATE.start_main_p3) 0) (= (store (store (store (store (store |v_#memory_int_41| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|))) [2019-01-31 14:44:20,437 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, ULTIMATE.start_main_p1]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:44:20,514 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:20,515 INFO L478 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 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 41 [2019-01-31 14:44:20,521 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:20,541 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:20,541 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:51, output treesize:29 [2019-01-31 14:44:31,890 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:31,891 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_42|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_42| ULTIMATE.start_main_p4))) (and (= (select |v_#memory_int_42| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_42| ULTIMATE.start_main_p3) 0) (= (store |v_#memory_int_42| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_42| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= .cse0 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-31 14:44:31,891 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-31 14:44:31,968 INFO L273 TraceCheckUtils]: 0: Hoare triple {863#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {870#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:44:31,970 INFO L273 TraceCheckUtils]: 1: Hoare triple {870#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {874#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:44:31,971 INFO L273 TraceCheckUtils]: 2: Hoare triple {874#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {874#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:44:31,972 INFO L273 TraceCheckUtils]: 3: Hoare triple {874#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {864#false} is VALID [2019-01-31 14:44:31,973 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:31,973 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:44:32,006 INFO L273 TraceCheckUtils]: 3: Hoare triple {881#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {864#false} is VALID [2019-01-31 14:44:32,009 INFO L273 TraceCheckUtils]: 2: Hoare triple {881#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {881#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:32,010 INFO L273 TraceCheckUtils]: 1: Hoare triple {888#(<= (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]; {881#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:32,012 INFO L273 TraceCheckUtils]: 0: Hoare triple {863#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {888#(<= (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:32,012 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:32,032 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-01-31 14:44:32,032 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 6 [2019-01-31 14:44:32,032 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-31 14:44:32,032 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-01-31 14:44:32,033 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:44:32,037 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-31 14:44:32,044 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 4 edges. 4 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:32,044 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-31 14:44:32,044 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-31 14:44:32,044 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=26, Invalid=30, Unknown=0, NotChecked=0, Total=56 [2019-01-31 14:44:32,045 INFO L87 Difference]: Start difference. First operand 20 states and 59 transitions. Second operand 4 states. [2019-01-31 14:44:32,309 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:32,309 INFO L93 Difference]: Finished difference Result 25 states and 74 transitions. [2019-01-31 14:44:32,309 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-31 14:44:32,309 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-01-31 14:44:32,309 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:44:32,309 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-31 14:44:32,310 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 24 transitions. [2019-01-31 14:44:32,310 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-31 14:44:32,311 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 24 transitions. [2019-01-31 14:44:32,311 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 24 transitions. [2019-01-31 14:44:32,333 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 24 edges. 24 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:32,335 INFO L225 Difference]: With dead ends: 25 [2019-01-31 14:44:32,335 INFO L226 Difference]: Without dead ends: 24 [2019-01-31 14:44:32,336 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 8 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=26, Invalid=30, Unknown=0, NotChecked=0, Total=56 [2019-01-31 14:44:32,336 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 24 states. [2019-01-31 14:44:32,413 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 24 to 23. [2019-01-31 14:44:32,413 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:44:32,413 INFO L82 GeneralOperation]: Start isEquivalent. First operand 24 states. Second operand 23 states. [2019-01-31 14:44:32,414 INFO L74 IsIncluded]: Start isIncluded. First operand 24 states. Second operand 23 states. [2019-01-31 14:44:32,414 INFO L87 Difference]: Start difference. First operand 24 states. Second operand 23 states. [2019-01-31 14:44:32,416 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:32,416 INFO L93 Difference]: Finished difference Result 24 states and 73 transitions. [2019-01-31 14:44:32,416 INFO L276 IsEmpty]: Start isEmpty. Operand 24 states and 73 transitions. [2019-01-31 14:44:32,416 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:32,416 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:32,416 INFO L74 IsIncluded]: Start isIncluded. First operand 23 states. Second operand 24 states. [2019-01-31 14:44:32,416 INFO L87 Difference]: Start difference. First operand 23 states. Second operand 24 states. [2019-01-31 14:44:32,418 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:32,418 INFO L93 Difference]: Finished difference Result 24 states and 73 transitions. [2019-01-31 14:44:32,418 INFO L276 IsEmpty]: Start isEmpty. Operand 24 states and 73 transitions. [2019-01-31 14:44:32,418 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:32,418 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:32,419 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:44:32,419 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:44:32,419 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 23 states. [2019-01-31 14:44:32,420 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 23 states to 23 states and 73 transitions. [2019-01-31 14:44:32,420 INFO L78 Accepts]: Start accepts. Automaton has 23 states and 73 transitions. Word has length 4 [2019-01-31 14:44:32,420 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:44:32,420 INFO L480 AbstractCegarLoop]: Abstraction has 23 states and 73 transitions. [2019-01-31 14:44:32,420 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-31 14:44:32,420 INFO L276 IsEmpty]: Start isEmpty. Operand 23 states and 73 transitions. [2019-01-31 14:44:32,420 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:44:32,421 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:44:32,421 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:44:32,421 INFO L423 AbstractCegarLoop]: === Iteration 8 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:44:32,421 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:32,421 INFO L82 PathProgramCache]: Analyzing trace with hash 941152, now seen corresponding path program 1 times [2019-01-31 14:44:32,421 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:44:32,422 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:32,422 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:32,422 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:32,423 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:44:32,433 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:32,574 INFO L273 TraceCheckUtils]: 0: Hoare triple {1007#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1009#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:44:32,576 INFO L273 TraceCheckUtils]: 1: Hoare triple {1009#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_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]; {1010#(and (= (select |#memory_int| ULTIMATE.start_main_p2) 0) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:44:32,577 INFO L273 TraceCheckUtils]: 2: Hoare triple {1010#(and (= (select |#memory_int| ULTIMATE.start_main_p2) 0) (= 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]; {1011#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:44:32,578 INFO L273 TraceCheckUtils]: 3: Hoare triple {1011#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {1008#false} is VALID [2019-01-31 14:44:32,578 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:32,579 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:32,579 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:44:32,579 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-31 14:44:32,579 INFO L207 CegarAbsIntRunner]: [0], [10], [18], [23] [2019-01-31 14:44:32,581 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:44:32,581 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:44:32,595 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:44:32,595 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 2. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:44:32,596 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:32,596 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:44:32,596 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:32,596 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:44:32,606 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:32,606 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:44:32,618 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:32,621 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:32,621 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:44:32,660 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 21 [2019-01-31 14:44:32,672 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 27 [2019-01-31 14:44:32,678 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:32,679 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:32,680 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:44:32,691 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:32,693 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:32,694 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:32,696 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:44:32,716 INFO L478 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 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:44:32,720 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:32,741 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:32,758 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:32,771 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:32,784 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:32,811 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:32,813 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-31 14:44:32,895 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:32,896 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:32,897 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-31 14:44:32,948 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:32,949 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:32,950 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:32,952 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:32,953 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 25 [2019-01-31 14:44:32,957 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:32,968 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:32,979 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:33,080 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:33,081 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:52, output treesize:50 [2019-01-31 14:44:33,087 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:33,087 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_44|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, |v_#valid_12|]. (let ((.cse1 (store |v_#valid_12| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= 0 (select .cse0 ULTIMATE.start_main_p3)) (= (store (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) ULTIMATE.start_main_p5 0) |#memory_int|) (= 0 (select .cse1 ULTIMATE.start_main_p2)) (= 0 (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4))))) [2019-01-31 14:44:33,087 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:44:33,169 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,171 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-31 14:44:33,174 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:33,204 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:33,204 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:55, output treesize:33 [2019-01-31 14:44:33,211 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:33,212 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_45|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_45| ULTIMATE.start_main_p4))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= |#memory_int| (store |v_#memory_int_45| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_45| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_45| ULTIMATE.start_main_p2) 0) (= .cse0 0) (= (select |v_#memory_int_45| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-31 14:44:33,212 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-31 14:44:33,270 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,272 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,273 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,274 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,275 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:44:33,276 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 60 [2019-01-31 14:44:33,280 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:33,302 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:33,303 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:45, output treesize:29 [2019-01-31 14:44:33,309 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:33,310 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_46|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_46| ULTIMATE.start_main_p2))) (and (= (store |v_#memory_int_46| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_46| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (+ (select |v_#memory_int_46| ULTIMATE.start_main_p4) 1) 0) (= 0 .cse0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_46| ULTIMATE.start_main_p1)))) [2019-01-31 14:44:33,310 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (and (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1))) [2019-01-31 14:44:33,369 INFO L273 TraceCheckUtils]: 0: Hoare triple {1007#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1015#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:44:33,372 INFO L273 TraceCheckUtils]: 1: Hoare triple {1015#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1019#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:44:33,374 INFO L273 TraceCheckUtils]: 2: Hoare triple {1019#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1023#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-01-31 14:44:33,377 INFO L273 TraceCheckUtils]: 3: Hoare triple {1023#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} assume !(#memory_int[main_p1] >= 0); {1008#false} is VALID [2019-01-31 14:44:33,378 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:33,378 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:44:33,426 INFO L273 TraceCheckUtils]: 3: Hoare triple {1027#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1008#false} is VALID [2019-01-31 14:44:33,427 INFO L273 TraceCheckUtils]: 2: Hoare triple {1031#(<= 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]; {1027#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:44:33,428 INFO L273 TraceCheckUtils]: 1: Hoare triple {1035#(<= 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]; {1031#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:44:33,430 INFO L273 TraceCheckUtils]: 0: Hoare triple {1007#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1035#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:44:33,431 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:33,451 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:44:33,451 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:44:33,451 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:44:33,452 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:44:33,452 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:44:33,452 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:44:33,464 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:33,464 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:44:33,465 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:44:33,465 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=41, Invalid=69, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:44:33,465 INFO L87 Difference]: Start difference. First operand 23 states and 73 transitions. Second operand 8 states. [2019-01-31 14:44:34,383 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:34,383 INFO L93 Difference]: Finished difference Result 56 states and 117 transitions. [2019-01-31 14:44:34,383 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:44:34,383 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:44:34,383 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:44:34,383 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:44:34,384 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 73 transitions. [2019-01-31 14:44:34,385 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:44:34,386 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 73 transitions. [2019-01-31 14:44:34,386 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 73 transitions. [2019-01-31 14:44:34,493 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 73 edges. 73 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:34,495 INFO L225 Difference]: With dead ends: 56 [2019-01-31 14:44:34,495 INFO L226 Difference]: Without dead ends: 55 [2019-01-31 14:44:34,495 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=60, Invalid=96, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:44:34,495 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 55 states. [2019-01-31 14:44:34,599 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 55 to 24. [2019-01-31 14:44:34,599 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:44:34,599 INFO L82 GeneralOperation]: Start isEquivalent. First operand 55 states. Second operand 24 states. [2019-01-31 14:44:34,599 INFO L74 IsIncluded]: Start isIncluded. First operand 55 states. Second operand 24 states. [2019-01-31 14:44:34,599 INFO L87 Difference]: Start difference. First operand 55 states. Second operand 24 states. [2019-01-31 14:44:34,604 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:34,605 INFO L93 Difference]: Finished difference Result 55 states and 115 transitions. [2019-01-31 14:44:34,605 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 115 transitions. [2019-01-31 14:44:34,605 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:34,605 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:34,606 INFO L74 IsIncluded]: Start isIncluded. First operand 24 states. Second operand 55 states. [2019-01-31 14:44:34,608 INFO L87 Difference]: Start difference. First operand 24 states. Second operand 55 states. [2019-01-31 14:44:34,610 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:34,610 INFO L93 Difference]: Finished difference Result 55 states and 115 transitions. [2019-01-31 14:44:34,610 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 115 transitions. [2019-01-31 14:44:34,611 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:34,611 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:34,611 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:44:34,611 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:44:34,611 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 24 states. [2019-01-31 14:44:34,613 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 24 states to 24 states and 79 transitions. [2019-01-31 14:44:34,613 INFO L78 Accepts]: Start accepts. Automaton has 24 states and 79 transitions. Word has length 4 [2019-01-31 14:44:34,613 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:44:34,613 INFO L480 AbstractCegarLoop]: Abstraction has 24 states and 79 transitions. [2019-01-31 14:44:34,613 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:44:34,613 INFO L276 IsEmpty]: Start isEmpty. Operand 24 states and 79 transitions. [2019-01-31 14:44:34,614 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:44:34,614 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:44:34,614 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:44:34,614 INFO L423 AbstractCegarLoop]: === Iteration 9 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:44:34,614 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:34,614 INFO L82 PathProgramCache]: Analyzing trace with hash 941276, now seen corresponding path program 1 times [2019-01-31 14:44:34,615 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:44:34,615 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:34,615 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:34,616 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:34,616 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:44:34,625 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:34,705 INFO L273 TraceCheckUtils]: 0: Hoare triple {1256#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1258#(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)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:44:34,706 INFO L273 TraceCheckUtils]: 1: Hoare triple {1258#(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)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1259#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:44:34,707 INFO L273 TraceCheckUtils]: 2: Hoare triple {1259#(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]; {1260#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:44:34,707 INFO L273 TraceCheckUtils]: 3: Hoare triple {1260#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {1257#false} is VALID [2019-01-31 14:44:34,708 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:34,708 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:34,708 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:44:34,708 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-31 14:44:34,708 INFO L207 CegarAbsIntRunner]: [0], [14], [18], [23] [2019-01-31 14:44:34,709 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:44:34,709 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:44:34,722 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:44:34,722 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 2. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:44:34,722 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:34,722 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:44:34,722 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:34,722 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:44:34,733 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:34,734 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:44:34,744 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:34,748 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:34,748 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:44:34,810 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:34,812 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-31 14:44:34,869 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:34,870 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:34,872 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-31 14:44:34,954 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:34,956 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:34,958 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:34,962 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:34,963 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 25 [2019-01-31 14:44:34,964 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:34,978 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:34,990 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:35,010 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 21 [2019-01-31 14:44:35,027 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 5 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 27 [2019-01-31 14:44:35,035 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 6 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:44:35,063 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:44:35,096 INFO L478 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 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:44:35,100 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:35,117 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:35,137 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:35,149 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:35,161 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:35,194 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:35,195 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:52, output treesize:50 [2019-01-31 14:44:35,206 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:35,206 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_49|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5, |v_#valid_13|]. (let ((.cse1 (store |v_#valid_13| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= (select .cse0 ULTIMATE.start_main_p3) 0) (= 0 (select .cse1 ULTIMATE.start_main_p2)) (= (store (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) ULTIMATE.start_main_p5 0) |#memory_int|) (= (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4) 0)))) [2019-01-31 14:44:35,206 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:44:35,350 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:35,351 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-31 14:44:35,360 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:35,379 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:35,380 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:55, output treesize:33 [2019-01-31 14:44:44,593 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:44,593 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_50|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_50| ULTIMATE.start_main_p4))) (and (= 0 (select |v_#memory_int_50| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_50| ULTIMATE.start_main_p2)) (= |#memory_int| (store |v_#memory_int_50| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_50| ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 .cse0))) [2019-01-31 14:44:44,593 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-31 14:44:44,649 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:44,650 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:44,651 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:44,652 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:44,654 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:44,655 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:44,656 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-31 14:44:44,659 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:44,683 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:44,684 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:45, output treesize:27 [2019-01-31 14:44:44,702 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:44,702 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_51|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_51| ULTIMATE.start_main_p3))) (and (= .cse0 0) (= (select |v_#memory_int_51| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (+ (select |v_#memory_int_51| ULTIMATE.start_main_p4) 1)) (= (store |v_#memory_int_51| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_51| ULTIMATE.start_main_p1) 0))) [2019-01-31 14:44:44,703 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) [2019-01-31 14:44:44,730 INFO L273 TraceCheckUtils]: 0: Hoare triple {1256#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1264#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:44:44,733 INFO L273 TraceCheckUtils]: 1: Hoare triple {1264#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1268#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-31 14:44:44,735 INFO L273 TraceCheckUtils]: 2: Hoare triple {1268#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {1272#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)))} is VALID [2019-01-31 14:44:44,736 INFO L273 TraceCheckUtils]: 3: Hoare triple {1272#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)))} assume !(#memory_int[main_p1] >= 0); {1257#false} is VALID [2019-01-31 14:44:44,736 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:44,736 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:44:44,781 INFO L273 TraceCheckUtils]: 3: Hoare triple {1276#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1257#false} is VALID [2019-01-31 14:44:44,782 INFO L273 TraceCheckUtils]: 2: Hoare triple {1280#(<= 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]; {1276#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:44:44,784 INFO L273 TraceCheckUtils]: 1: Hoare triple {1284#(<= 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]; {1280#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:44:44,787 INFO L273 TraceCheckUtils]: 0: Hoare triple {1256#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1284#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:44:44,787 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:44,810 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:44:44,810 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:44:44,810 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:44:44,811 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:44:44,811 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:44:44,811 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:44:44,826 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:44,826 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:44:44,827 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:44:44,827 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:44:44,827 INFO L87 Difference]: Start difference. First operand 24 states and 79 transitions. Second operand 8 states. [2019-01-31 14:44:45,840 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:45,841 INFO L93 Difference]: Finished difference Result 52 states and 120 transitions. [2019-01-31 14:44:45,841 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:44:45,841 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:44:45,841 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:44:45,841 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:44:45,843 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 63 transitions. [2019-01-31 14:44:45,843 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:44:45,844 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 63 transitions. [2019-01-31 14:44:45,844 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 63 transitions. [2019-01-31 14:44:45,991 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 63 edges. 63 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:45,993 INFO L225 Difference]: With dead ends: 52 [2019-01-31 14:44:45,993 INFO L226 Difference]: Without dead ends: 48 [2019-01-31 14:44:45,994 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:44:45,994 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 48 states. [2019-01-31 14:44:46,110 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 48 to 26. [2019-01-31 14:44:46,111 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:44:46,111 INFO L82 GeneralOperation]: Start isEquivalent. First operand 48 states. Second operand 26 states. [2019-01-31 14:44:46,112 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand 26 states. [2019-01-31 14:44:46,112 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 26 states. [2019-01-31 14:44:46,115 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:46,115 INFO L93 Difference]: Finished difference Result 48 states and 114 transitions. [2019-01-31 14:44:46,115 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 114 transitions. [2019-01-31 14:44:46,115 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:46,116 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:46,116 INFO L74 IsIncluded]: Start isIncluded. First operand 26 states. Second operand 48 states. [2019-01-31 14:44:46,116 INFO L87 Difference]: Start difference. First operand 26 states. Second operand 48 states. [2019-01-31 14:44:46,118 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:46,118 INFO L93 Difference]: Finished difference Result 48 states and 114 transitions. [2019-01-31 14:44:46,119 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 114 transitions. [2019-01-31 14:44:46,119 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:46,119 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:46,119 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:44:46,119 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:44:46,119 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 26 states. [2019-01-31 14:44:46,121 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 90 transitions. [2019-01-31 14:44:46,121 INFO L78 Accepts]: Start accepts. Automaton has 26 states and 90 transitions. Word has length 4 [2019-01-31 14:44:46,121 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:44:46,122 INFO L480 AbstractCegarLoop]: Abstraction has 26 states and 90 transitions. [2019-01-31 14:44:46,122 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:44:46,122 INFO L276 IsEmpty]: Start isEmpty. Operand 26 states and 90 transitions. [2019-01-31 14:44:46,122 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:44:46,122 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:44:46,122 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:44:46,123 INFO L423 AbstractCegarLoop]: === Iteration 10 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:44:46,123 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:46,123 INFO L82 PathProgramCache]: Analyzing trace with hash 943510, now seen corresponding path program 1 times [2019-01-31 14:44:46,123 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:44:46,124 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:46,124 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:46,124 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:46,124 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:44:46,129 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:46,181 INFO L273 TraceCheckUtils]: 0: Hoare triple {1492#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1494#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:44:46,182 INFO L273 TraceCheckUtils]: 1: Hoare triple {1494#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {1495#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:46,182 INFO L273 TraceCheckUtils]: 2: Hoare triple {1495#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {1495#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:46,183 INFO L273 TraceCheckUtils]: 3: Hoare triple {1495#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {1493#false} is VALID [2019-01-31 14:44:46,183 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:46,183 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:46,183 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:44:46,184 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-31 14:44:46,184 INFO L207 CegarAbsIntRunner]: [0], [20], [24], [25] [2019-01-31 14:44:46,185 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:44:46,185 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:44:46,195 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:44:46,195 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 2. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-31 14:44:46,196 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:46,196 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:44:46,196 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:46,196 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:44:46,206 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:46,206 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:44:46,210 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:46,214 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:46,214 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:44:46,235 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 21 [2019-01-31 14:44:46,242 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:44:46,251 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:46,252 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:46,253 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 33 [2019-01-31 14:44:46,263 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:46,265 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:46,266 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:46,267 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 5 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 47 [2019-01-31 14:44:46,282 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:46,285 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:46,286 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:46,288 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:46,289 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 62 [2019-01-31 14:44:46,294 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:46,330 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:46,346 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:46,359 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:46,372 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:46,396 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 43 treesize of output 39 [2019-01-31 14:44:46,423 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:46,425 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:46,426 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 49 [2019-01-31 14:44:46,481 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:46,482 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:46,484 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:46,485 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:46,487 INFO L478 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 32 treesize of output 57 [2019-01-31 14:44:46,586 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:46,587 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:46,588 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:46,590 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:46,591 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:46,593 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:46,594 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 37 [2019-01-31 14:44:46,598 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:46,614 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:46,629 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:46,647 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:46,688 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 2 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:46,688 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 5 variables, input treesize:61, output treesize:62 [2019-01-31 14:44:46,697 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:46,698 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_54|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, |v_#valid_14|]. (let ((.cse0 (store (store |v_#valid_14| ULTIMATE.start_main_p1 1) ULTIMATE.start_main_p2 1))) (let ((.cse1 (store .cse0 ULTIMATE.start_main_p3 1))) (and (= 0 (select .cse0 ULTIMATE.start_main_p3)) (= 0 (select .cse1 ULTIMATE.start_main_p4)) (= |#memory_int| (store (store (store (store (store |v_#memory_int_54| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0)) (= 0 (select (store .cse1 ULTIMATE.start_main_p4 1) ULTIMATE.start_main_p5))))) [2019-01-31 14:44:46,698 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p1]. (and (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:44:46,805 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:46,806 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 68 [2019-01-31 14:44:46,809 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:46,847 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:46,847 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:72, output treesize:46 [2019-01-31 14:44:58,388 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:58,389 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_55|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_55| ULTIMATE.start_main_p5))) (and (= .cse0 0) (= 0 (select |v_#memory_int_55| ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_55| ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_55| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_55| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (store |v_#memory_int_55| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) [2019-01-31 14:44:58,389 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:44:58,555 INFO L273 TraceCheckUtils]: 0: Hoare triple {1492#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1499#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-31 14:44:58,563 INFO L273 TraceCheckUtils]: 1: Hoare triple {1499#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {1503#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-31 14:44:58,564 INFO L273 TraceCheckUtils]: 2: Hoare triple {1503#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} assume #memory_int[main_p1] >= 0; {1503#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-31 14:44:58,565 INFO L273 TraceCheckUtils]: 3: Hoare triple {1503#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} assume !(#memory_int[main_p2] <= 0); {1493#false} is VALID [2019-01-31 14:44:58,566 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:58,566 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:44:58,586 INFO L273 TraceCheckUtils]: 3: Hoare triple {1510#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {1493#false} is VALID [2019-01-31 14:44:58,587 INFO L273 TraceCheckUtils]: 2: Hoare triple {1510#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {1510#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:58,588 INFO L273 TraceCheckUtils]: 1: Hoare triple {1517#(<= (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {1510#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:58,590 INFO L273 TraceCheckUtils]: 0: Hoare triple {1492#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1517#(<= (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:58,590 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:58,610 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:44:58,611 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-31 14:44:58,611 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:44:58,611 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-31 14:44:58,611 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:44:58,611 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-31 14:44:58,625 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:58,625 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-31 14:44:58,626 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-31 14:44:58,626 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-31 14:44:58,626 INFO L87 Difference]: Start difference. First operand 26 states and 90 transitions. Second operand 6 states. [2019-01-31 14:44:59,061 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:59,061 INFO L93 Difference]: Finished difference Result 42 states and 110 transitions. [2019-01-31 14:44:59,061 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-31 14:44:59,061 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-31 14:44:59,062 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:44:59,062 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:44:59,062 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 46 transitions. [2019-01-31 14:44:59,062 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:44:59,063 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 46 transitions. [2019-01-31 14:44:59,063 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 46 transitions. [2019-01-31 14:44:59,186 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 46 edges. 46 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:59,187 INFO L225 Difference]: With dead ends: 42 [2019-01-31 14:44:59,187 INFO L226 Difference]: Without dead ends: 41 [2019-01-31 14:44:59,187 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 9 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-01-31 14:44:59,187 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 41 states. [2019-01-31 14:44:59,303 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 41 to 26. [2019-01-31 14:44:59,303 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:44:59,303 INFO L82 GeneralOperation]: Start isEquivalent. First operand 41 states. Second operand 26 states. [2019-01-31 14:44:59,304 INFO L74 IsIncluded]: Start isIncluded. First operand 41 states. Second operand 26 states. [2019-01-31 14:44:59,304 INFO L87 Difference]: Start difference. First operand 41 states. Second operand 26 states. [2019-01-31 14:44:59,306 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:59,306 INFO L93 Difference]: Finished difference Result 41 states and 108 transitions. [2019-01-31 14:44:59,306 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 108 transitions. [2019-01-31 14:44:59,306 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:59,306 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:59,307 INFO L74 IsIncluded]: Start isIncluded. First operand 26 states. Second operand 41 states. [2019-01-31 14:44:59,307 INFO L87 Difference]: Start difference. First operand 26 states. Second operand 41 states. [2019-01-31 14:44:59,308 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:59,308 INFO L93 Difference]: Finished difference Result 41 states and 108 transitions. [2019-01-31 14:44:59,308 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 108 transitions. [2019-01-31 14:44:59,309 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:59,309 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:59,309 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:44:59,309 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:44:59,309 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 26 states. [2019-01-31 14:44:59,310 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 90 transitions. [2019-01-31 14:44:59,310 INFO L78 Accepts]: Start accepts. Automaton has 26 states and 90 transitions. Word has length 4 [2019-01-31 14:44:59,310 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:44:59,310 INFO L480 AbstractCegarLoop]: Abstraction has 26 states and 90 transitions. [2019-01-31 14:44:59,310 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-31 14:44:59,310 INFO L276 IsEmpty]: Start isEmpty. Operand 26 states and 90 transitions. [2019-01-31 14:44:59,311 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:44:59,311 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:44:59,311 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:44:59,311 INFO L423 AbstractCegarLoop]: === Iteration 11 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:44:59,311 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:59,311 INFO L82 PathProgramCache]: Analyzing trace with hash 943074, now seen corresponding path program 1 times [2019-01-31 14:44:59,311 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:44:59,312 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:59,312 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:59,312 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:59,313 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:44:59,319 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:59,379 INFO L273 TraceCheckUtils]: 0: Hoare triple {1699#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1701#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:44:59,380 INFO L273 TraceCheckUtils]: 1: Hoare triple {1701#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {1702#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:44:59,381 INFO L273 TraceCheckUtils]: 2: Hoare triple {1702#(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]; {1703#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:44:59,382 INFO L273 TraceCheckUtils]: 3: Hoare triple {1703#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {1700#false} is VALID [2019-01-31 14:44:59,383 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:59,383 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:59,383 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:44:59,383 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-31 14:44:59,384 INFO L207 CegarAbsIntRunner]: [0], [10], [20], [23] [2019-01-31 14:44:59,385 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:44:59,385 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:44:59,432 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:44:59,432 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 2. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:44:59,433 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:59,433 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:44:59,433 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:59,433 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 10 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 10 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:44:59,443 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:59,443 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:44:59,448 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:59,453 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:59,453 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:44:59,510 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 21 [2019-01-31 14:44:59,519 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 27 [2019-01-31 14:44:59,529 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:59,530 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:59,532 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:44:59,570 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:59,571 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:59,572 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:59,573 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:44:59,588 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:59,590 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:59,591 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:59,593 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:59,594 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:44:59,600 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:59,647 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:59,664 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:59,678 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:59,691 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:59,720 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:59,721 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 48 treesize of output 54 [2019-01-31 14:44:59,772 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:59,773 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:59,774 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 41 treesize of output 53 [2019-01-31 14:44:59,834 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:59,836 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:59,837 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:59,838 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:59,839 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 61 [2019-01-31 14:44:59,919 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:59,920 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:59,921 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:59,923 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:59,924 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:59,925 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:59,926 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 11 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 41 [2019-01-31 14:44:59,931 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:59,949 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:59,967 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:59,986 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:00,027 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:00,028 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 4 variables, input treesize:69, output treesize:66 [2019-01-31 14:45:00,036 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:00,036 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_57|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, |v_#valid_15|]. (let ((.cse0 (store |v_#valid_15| ULTIMATE.start_main_p1 1))) (let ((.cse2 (store .cse0 ULTIMATE.start_main_p2 1))) (let ((.cse1 (store .cse2 ULTIMATE.start_main_p3 1))) (and (= (store (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) ULTIMATE.start_main_p5 0) |#memory_int|) (= 0 (select .cse0 ULTIMATE.start_main_p2)) (= (select (store .cse1 ULTIMATE.start_main_p4 1) ULTIMATE.start_main_p5) 0) (= 0 (select .cse1 ULTIMATE.start_main_p4)) (= 0 (select .cse2 ULTIMATE.start_main_p3)))))) [2019-01-31 14:45:00,036 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (and (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:45:00,124 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:00,125 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 11 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 72 [2019-01-31 14:45:00,129 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:00,172 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:00,173 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:76, output treesize:50 [2019-01-31 14:45:00,187 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:00,187 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_58|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_58| ULTIMATE.start_main_p5))) (and (= (select |v_#memory_int_58| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_58| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_58| ULTIMATE.start_main_p3) 0) (= 0 (select |v_#memory_int_58| ULTIMATE.start_main_p4)) (= (store |v_#memory_int_58| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= .cse0 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) [2019-01-31 14:45:00,187 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:45:00,275 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:00,276 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:00,278 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:00,279 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:00,280 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:00,282 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:00,283 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:00,284 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 86 [2019-01-31 14:45:00,290 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:00,344 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:00,345 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:60, output treesize:38 [2019-01-31 14:45:00,513 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:00,514 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_59|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_59| ULTIMATE.start_main_p2))) (and (= 1 (select |v_#memory_int_59| ULTIMATE.start_main_p5)) (= 0 (select |v_#memory_int_59| ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_59| ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (store |v_#memory_int_59| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 .cse0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_59| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-31 14:45:00,514 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:45:00,573 INFO L273 TraceCheckUtils]: 0: Hoare triple {1699#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1707#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:45:00,575 INFO L273 TraceCheckUtils]: 1: Hoare triple {1707#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {1711#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-31 14:45:00,578 INFO L273 TraceCheckUtils]: 2: Hoare triple {1711#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1715#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-31 14:45:00,579 INFO L273 TraceCheckUtils]: 3: Hoare triple {1715#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} assume !(#memory_int[main_p1] >= 0); {1700#false} is VALID [2019-01-31 14:45:00,580 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:00,580 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:45:00,634 INFO L273 TraceCheckUtils]: 3: Hoare triple {1719#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1700#false} is VALID [2019-01-31 14:45:00,635 INFO L273 TraceCheckUtils]: 2: Hoare triple {1723#(<= 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]; {1719#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:45:00,640 INFO L273 TraceCheckUtils]: 1: Hoare triple {1727#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {1723#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:45:00,642 INFO L273 TraceCheckUtils]: 0: Hoare triple {1699#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1727#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:45:00,642 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:00,662 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:45:00,662 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:45:00,662 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:45:00,663 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:45:00,663 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:45:00,663 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:45:00,678 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:45:00,678 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:45:00,678 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:45:00,678 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:45:00,678 INFO L87 Difference]: Start difference. First operand 26 states and 90 transitions. Second operand 8 states. [2019-01-31 14:45:01,621 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:01,621 INFO L93 Difference]: Finished difference Result 54 states and 131 transitions. [2019-01-31 14:45:01,621 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:45:01,622 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:45:01,622 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:45:01,622 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:45:01,622 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 60 transitions. [2019-01-31 14:45:01,623 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:45:01,623 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 60 transitions. [2019-01-31 14:45:01,623 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 60 transitions. [2019-01-31 14:45:01,783 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 60 edges. 60 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:45:01,785 INFO L225 Difference]: With dead ends: 54 [2019-01-31 14:45:01,785 INFO L226 Difference]: Without dead ends: 53 [2019-01-31 14:45:01,786 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:45:01,786 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 53 states. [2019-01-31 14:45:02,005 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 53 to 27. [2019-01-31 14:45:02,005 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:45:02,006 INFO L82 GeneralOperation]: Start isEquivalent. First operand 53 states. Second operand 27 states. [2019-01-31 14:45:02,006 INFO L74 IsIncluded]: Start isIncluded. First operand 53 states. Second operand 27 states. [2019-01-31 14:45:02,006 INFO L87 Difference]: Start difference. First operand 53 states. Second operand 27 states. [2019-01-31 14:45:02,008 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:02,008 INFO L93 Difference]: Finished difference Result 53 states and 129 transitions. [2019-01-31 14:45:02,008 INFO L276 IsEmpty]: Start isEmpty. Operand 53 states and 129 transitions. [2019-01-31 14:45:02,008 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:02,009 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:02,009 INFO L74 IsIncluded]: Start isIncluded. First operand 27 states. Second operand 53 states. [2019-01-31 14:45:02,009 INFO L87 Difference]: Start difference. First operand 27 states. Second operand 53 states. [2019-01-31 14:45:02,011 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:02,011 INFO L93 Difference]: Finished difference Result 53 states and 129 transitions. [2019-01-31 14:45:02,011 INFO L276 IsEmpty]: Start isEmpty. Operand 53 states and 129 transitions. [2019-01-31 14:45:02,011 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:02,011 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:02,012 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:45:02,012 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:45:02,012 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 27 states. [2019-01-31 14:45:02,013 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 27 states to 27 states and 96 transitions. [2019-01-31 14:45:02,013 INFO L78 Accepts]: Start accepts. Automaton has 27 states and 96 transitions. Word has length 4 [2019-01-31 14:45:02,013 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:45:02,013 INFO L480 AbstractCegarLoop]: Abstraction has 27 states and 96 transitions. [2019-01-31 14:45:02,014 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:45:02,014 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 96 transitions. [2019-01-31 14:45:02,014 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:45:02,014 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:45:02,014 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:45:02,014 INFO L423 AbstractCegarLoop]: === Iteration 12 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:45:02,015 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:02,015 INFO L82 PathProgramCache]: Analyzing trace with hash 929868, now seen corresponding path program 1 times [2019-01-31 14:45:02,015 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:45:02,016 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:02,016 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:45:02,016 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:02,016 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:45:02,026 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:02,154 INFO L273 TraceCheckUtils]: 0: Hoare triple {1951#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1953#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:45:02,155 INFO L273 TraceCheckUtils]: 1: Hoare triple {1953#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1954#(and (or (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (or (<= 1 (select |#memory_int| ULTIMATE.start_main_p4)) (not (= (select |#memory_int| ULTIMATE.start_main_p4) (select |#memory_int| ULTIMATE.start_main_p1)))))} is VALID [2019-01-31 14:45:02,156 INFO L273 TraceCheckUtils]: 2: Hoare triple {1954#(and (or (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (or (<= 1 (select |#memory_int| ULTIMATE.start_main_p4)) (not (= (select |#memory_int| ULTIMATE.start_main_p4) (select |#memory_int| ULTIMATE.start_main_p1)))))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1955#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:45:02,161 INFO L273 TraceCheckUtils]: 3: Hoare triple {1955#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1952#false} is VALID [2019-01-31 14:45:02,161 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:02,162 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:02,162 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:45:02,162 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-31 14:45:02,162 INFO L207 CegarAbsIntRunner]: [0], [6], [18], [23] [2019-01-31 14:45:02,163 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:45:02,163 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:45:02,181 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:45:02,181 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 2. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:45:02,182 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:02,182 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:45:02,182 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:02,182 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 11 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 11 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:45:02,195 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:45:02,195 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:45:02,199 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:02,203 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:02,204 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:45:02,275 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:02,276 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-31 14:45:02,319 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:02,320 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:02,321 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-31 14:45:02,370 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:02,372 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:02,373 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:02,374 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:02,375 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 25 [2019-01-31 14:45:02,378 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:02,389 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:02,400 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:02,421 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 21 [2019-01-31 14:45:02,429 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 5 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 27 [2019-01-31 14:45:02,439 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 6 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:45:02,455 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:45:02,477 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:45:02,480 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:02,500 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:02,516 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:02,530 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:02,544 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:02,572 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 2 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:02,572 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 5 variables, input treesize:52, output treesize:50 [2019-01-31 14:45:02,582 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:02,582 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_62|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, |v_#valid_16|]. (let ((.cse1 (store |v_#valid_16| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= (store (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) ULTIMATE.start_main_p5 0) |#memory_int|) (= (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4) 0) (= (select .cse0 ULTIMATE.start_main_p3) 0) (= 0 (select .cse1 ULTIMATE.start_main_p2))))) [2019-01-31 14:45:02,583 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:45:02,660 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:02,661 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:45:02,665 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:02,688 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:02,688 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:55, output treesize:33 [2019-01-31 14:45:02,694 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:02,694 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_63|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_63| ULTIMATE.start_main_p1))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_63| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (store |v_#memory_int_63| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= .cse0 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_63| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_63| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-31 14:45:02,694 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:45:02,751 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:02,752 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:02,753 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:02,755 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:02,756 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:02,757 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:02,758 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 57 [2019-01-31 14:45:02,761 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:02,796 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:02,797 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:43, output treesize:25 [2019-01-31 14:45:05,009 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:05,009 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_64|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_64| ULTIMATE.start_main_p4))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_64| ULTIMATE.start_main_p2) 0) (= .cse0 0) (= (select |v_#memory_int_64| ULTIMATE.start_main_p3) 0) (= (store |v_#memory_int_64| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_64| ULTIMATE.start_main_p1) 1))) [2019-01-31 14:45:05,009 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-31 14:45:05,055 INFO L273 TraceCheckUtils]: 0: Hoare triple {1951#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1959#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:45:05,058 INFO L273 TraceCheckUtils]: 1: Hoare triple {1959#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1963#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:45:05,059 INFO L273 TraceCheckUtils]: 2: Hoare triple {1963#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1967#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} is VALID [2019-01-31 14:45:05,060 INFO L273 TraceCheckUtils]: 3: Hoare triple {1967#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} assume !(#memory_int[main_p1] >= 0); {1952#false} is VALID [2019-01-31 14:45:05,061 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:05,061 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:45:05,090 INFO L273 TraceCheckUtils]: 3: Hoare triple {1955#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1952#false} is VALID [2019-01-31 14:45:05,092 INFO L273 TraceCheckUtils]: 2: Hoare triple {1974#(<= 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]; {1955#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:45:05,093 INFO L273 TraceCheckUtils]: 1: Hoare triple {1978#(<= 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]; {1974#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:45:05,095 INFO L273 TraceCheckUtils]: 0: Hoare triple {1951#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1978#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:45:05,096 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:05,116 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:45:05,116 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-01-31 14:45:05,116 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:45:05,116 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:45:05,116 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:45:05,116 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:45:05,128 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:45:05,129 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:45:05,129 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:45:05,129 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=37, Invalid=53, Unknown=0, NotChecked=0, Total=90 [2019-01-31 14:45:05,130 INFO L87 Difference]: Start difference. First operand 27 states and 96 transitions. Second operand 8 states. [2019-01-31 14:45:05,802 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:05,802 INFO L93 Difference]: Finished difference Result 63 states and 165 transitions. [2019-01-31 14:45:05,803 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-31 14:45:05,803 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:45:05,803 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:45:05,803 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:45:05,805 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 79 transitions. [2019-01-31 14:45:05,805 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:45:05,806 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 79 transitions. [2019-01-31 14:45:05,806 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 79 transitions. [2019-01-31 14:45:05,917 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 79 edges. 79 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:45:05,919 INFO L225 Difference]: With dead ends: 63 [2019-01-31 14:45:05,920 INFO L226 Difference]: Without dead ends: 61 [2019-01-31 14:45:05,920 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 9 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 8 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 22 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=37, Invalid=53, Unknown=0, NotChecked=0, Total=90 [2019-01-31 14:45:05,920 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 61 states. [2019-01-31 14:45:06,090 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 61 to 32. [2019-01-31 14:45:06,090 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:45:06,091 INFO L82 GeneralOperation]: Start isEquivalent. First operand 61 states. Second operand 32 states. [2019-01-31 14:45:06,091 INFO L74 IsIncluded]: Start isIncluded. First operand 61 states. Second operand 32 states. [2019-01-31 14:45:06,091 INFO L87 Difference]: Start difference. First operand 61 states. Second operand 32 states. [2019-01-31 14:45:06,094 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:06,094 INFO L93 Difference]: Finished difference Result 61 states and 161 transitions. [2019-01-31 14:45:06,094 INFO L276 IsEmpty]: Start isEmpty. Operand 61 states and 161 transitions. [2019-01-31 14:45:06,094 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:06,094 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:06,095 INFO L74 IsIncluded]: Start isIncluded. First operand 32 states. Second operand 61 states. [2019-01-31 14:45:06,095 INFO L87 Difference]: Start difference. First operand 32 states. Second operand 61 states. [2019-01-31 14:45:06,096 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:06,097 INFO L93 Difference]: Finished difference Result 61 states and 161 transitions. [2019-01-31 14:45:06,097 INFO L276 IsEmpty]: Start isEmpty. Operand 61 states and 161 transitions. [2019-01-31 14:45:06,097 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:06,097 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:06,097 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:45:06,097 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:45:06,098 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 32 states. [2019-01-31 14:45:06,099 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 32 states to 32 states and 113 transitions. [2019-01-31 14:45:06,099 INFO L78 Accepts]: Start accepts. Automaton has 32 states and 113 transitions. Word has length 4 [2019-01-31 14:45:06,099 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:45:06,099 INFO L480 AbstractCegarLoop]: Abstraction has 32 states and 113 transitions. [2019-01-31 14:45:06,099 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:45:06,099 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 113 transitions. [2019-01-31 14:45:06,099 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:45:06,100 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:45:06,100 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:45:06,100 INFO L423 AbstractCegarLoop]: === Iteration 13 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:45:06,100 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:06,100 INFO L82 PathProgramCache]: Analyzing trace with hash 930056, now seen corresponding path program 1 times [2019-01-31 14:45:06,100 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:45:06,101 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:06,101 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:45:06,101 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:06,101 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:45:06,107 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:06,169 INFO L273 TraceCheckUtils]: 0: Hoare triple {2235#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {2237#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:45:06,169 INFO L273 TraceCheckUtils]: 1: Hoare triple {2237#(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]; {2237#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:45:06,170 INFO L273 TraceCheckUtils]: 2: Hoare triple {2237#(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)))} assume #memory_int[main_p1] >= 0; {2238#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:45:06,171 INFO L273 TraceCheckUtils]: 3: Hoare triple {2238#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {2236#false} is VALID [2019-01-31 14:45:06,171 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:45:06,171 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-01-31 14:45:06,172 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2019-01-31 14:45:06,172 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-31 14:45:06,172 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-01-31 14:45:06,172 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:45:06,172 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-31 14:45:06,178 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 4 edges. 4 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:45:06,178 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-31 14:45:06,178 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-31 14:45:06,179 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2019-01-31 14:45:06,179 INFO L87 Difference]: Start difference. First operand 32 states and 113 transitions. Second operand 4 states. [2019-01-31 14:45:06,522 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:06,522 INFO L93 Difference]: Finished difference Result 41 states and 126 transitions. [2019-01-31 14:45:06,522 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-31 14:45:06,522 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-01-31 14:45:06,523 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:45:06,523 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-31 14:45:06,523 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 28 transitions. [2019-01-31 14:45:06,523 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-31 14:45:06,524 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 28 transitions. [2019-01-31 14:45:06,524 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 28 transitions. [2019-01-31 14:45:06,685 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 28 edges. 28 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:45:06,686 INFO L225 Difference]: With dead ends: 41 [2019-01-31 14:45:06,687 INFO L226 Difference]: Without dead ends: 40 [2019-01-31 14:45:06,687 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 3 GetRequests, 0 SyntacticMatches, 1 SemanticMatches, 2 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2019-01-31 14:45:06,688 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 40 states. [2019-01-31 14:45:06,864 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 40 to 33. [2019-01-31 14:45:06,864 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:45:06,864 INFO L82 GeneralOperation]: Start isEquivalent. First operand 40 states. Second operand 33 states. [2019-01-31 14:45:06,864 INFO L74 IsIncluded]: Start isIncluded. First operand 40 states. Second operand 33 states. [2019-01-31 14:45:06,865 INFO L87 Difference]: Start difference. First operand 40 states. Second operand 33 states. [2019-01-31 14:45:06,867 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:06,867 INFO L93 Difference]: Finished difference Result 40 states and 124 transitions. [2019-01-31 14:45:06,867 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 124 transitions. [2019-01-31 14:45:06,868 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:06,868 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:06,868 INFO L74 IsIncluded]: Start isIncluded. First operand 33 states. Second operand 40 states. [2019-01-31 14:45:06,868 INFO L87 Difference]: Start difference. First operand 33 states. Second operand 40 states. [2019-01-31 14:45:06,869 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:06,869 INFO L93 Difference]: Finished difference Result 40 states and 124 transitions. [2019-01-31 14:45:06,870 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 124 transitions. [2019-01-31 14:45:06,870 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:06,870 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:06,870 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:45:06,870 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:45:06,870 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 33 states. [2019-01-31 14:45:06,871 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 33 states to 33 states and 118 transitions. [2019-01-31 14:45:06,872 INFO L78 Accepts]: Start accepts. Automaton has 33 states and 118 transitions. Word has length 4 [2019-01-31 14:45:06,872 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:45:06,872 INFO L480 AbstractCegarLoop]: Abstraction has 33 states and 118 transitions. [2019-01-31 14:45:06,872 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-31 14:45:06,872 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 118 transitions. [2019-01-31 14:45:06,872 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:45:06,872 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:45:06,872 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:45:06,873 INFO L423 AbstractCegarLoop]: === Iteration 14 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:45:06,873 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:06,873 INFO L82 PathProgramCache]: Analyzing trace with hash 933712, now seen corresponding path program 2 times [2019-01-31 14:45:06,873 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:45:06,874 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:06,874 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:45:06,874 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:06,874 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:45:06,881 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:07,078 INFO L273 TraceCheckUtils]: 0: Hoare triple {2429#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {2431#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:45:07,079 INFO L273 TraceCheckUtils]: 1: Hoare triple {2431#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 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]; {2432#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:45:07,094 INFO L273 TraceCheckUtils]: 2: Hoare triple {2432#(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]; {2433#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:45:07,095 INFO L273 TraceCheckUtils]: 3: Hoare triple {2433#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {2430#false} is VALID [2019-01-31 14:45:07,096 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:07,096 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:07,096 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:45:07,096 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-31 14:45:07,096 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-31 14:45:07,096 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:07,096 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 12 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 12 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:45:07,106 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-31 14:45:07,106 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-31 14:45:07,113 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 2 check-sat command(s) [2019-01-31 14:45:07,113 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-31 14:45:07,120 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:07,121 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:45:07,164 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 21 [2019-01-31 14:45:07,172 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 27 [2019-01-31 14:45:07,177 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,178 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,179 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:45:07,191 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,192 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,194 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,195 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:45:07,209 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,210 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,211 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,213 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,214 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:45:07,219 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:07,250 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:07,268 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:07,281 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:07,294 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:07,323 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,324 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 48 treesize of output 54 [2019-01-31 14:45:07,375 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,377 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,377 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 41 treesize of output 53 [2019-01-31 14:45:07,504 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,505 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,506 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,507 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,508 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 61 [2019-01-31 14:45:07,579 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,580 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,581 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,582 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,584 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,585 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,586 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 11 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 41 [2019-01-31 14:45:07,589 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:07,608 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:07,627 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:07,645 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:07,686 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:07,686 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 4 variables, input treesize:69, output treesize:66 [2019-01-31 14:45:07,693 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:07,693 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_67|, ULTIMATE.start_main_p3, ULTIMATE.start_malloc_ptr, |v_#valid_17|]. (let ((.cse2 (store |v_#valid_17| ULTIMATE.start_main_p1 1))) (let ((.cse1 (store .cse2 ULTIMATE.start_main_p2 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p3 1))) (and (= 0 (select (store .cse0 ULTIMATE.start_main_p4 1) ULTIMATE.start_malloc_ptr)) (= 0 (select .cse0 ULTIMATE.start_main_p4)) (= (store (store (store (store (store |v_#memory_int_67| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_malloc_ptr 0) |#memory_int|) (= 0 (select .cse1 ULTIMATE.start_main_p3)) (= 0 (select .cse2 ULTIMATE.start_main_p2)))))) [2019-01-31 14:45:07,693 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_malloc_ptr]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:45:08,197 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:08,198 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 11 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 72 [2019-01-31 14:45:08,202 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:08,242 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:08,242 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:76, output treesize:50 [2019-01-31 14:45:08,250 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:08,250 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_68|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_malloc_ptr]. (let ((.cse0 (select |v_#memory_int_68| ULTIMATE.start_main_p2))) (and (= .cse0 0) (= (store |v_#memory_int_68| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_68| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_68| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_68| ULTIMATE.start_malloc_ptr)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_68| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)))) [2019-01-31 14:45:08,250 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr))) [2019-01-31 14:45:08,325 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:08,330 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:08,331 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:08,331 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:08,332 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:08,333 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:08,333 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:45:08,334 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 11 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 79 [2019-01-31 14:45:08,338 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:08,379 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:08,379 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:62, output treesize:44 [2019-01-31 14:45:08,392 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:08,392 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_69|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_69| ULTIMATE.start_main_p4))) (and (= (store |v_#memory_int_69| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_69| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_69| ULTIMATE.start_malloc_ptr)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= (select |v_#memory_int_69| ULTIMATE.start_main_p1) 0) (= 0 .cse0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (+ (select |v_#memory_int_69| ULTIMATE.start_main_p2) 1)))) [2019-01-31 14:45:08,393 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr))) [2019-01-31 14:45:08,423 INFO L273 TraceCheckUtils]: 0: Hoare triple {2429#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {2437#(and (exists ((ULTIMATE.start_malloc_ptr Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:45:08,425 INFO L273 TraceCheckUtils]: 1: Hoare triple {2437#(and (exists ((ULTIMATE.start_malloc_ptr Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2441#(and (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_malloc_ptr Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:45:08,427 INFO L273 TraceCheckUtils]: 2: Hoare triple {2441#(and (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_malloc_ptr Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2445#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_malloc_ptr Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-31 14:45:08,428 INFO L273 TraceCheckUtils]: 3: Hoare triple {2445#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_malloc_ptr Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p1] >= 0); {2430#false} is VALID [2019-01-31 14:45:08,428 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:08,428 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:45:08,471 INFO L273 TraceCheckUtils]: 3: Hoare triple {2449#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {2430#false} is VALID [2019-01-31 14:45:08,472 INFO L273 TraceCheckUtils]: 2: Hoare triple {2453#(<= 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]; {2449#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:45:08,473 INFO L273 TraceCheckUtils]: 1: Hoare triple {2457#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2453#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:45:08,475 INFO L273 TraceCheckUtils]: 0: Hoare triple {2429#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {2457#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:45:08,475 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:08,493 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:45:08,493 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:45:08,494 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:45:08,494 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:45:08,494 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:45:08,494 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:45:08,508 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:45:08,509 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:45:08,509 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:45:08,509 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=43, Invalid=67, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:45:08,510 INFO L87 Difference]: Start difference. First operand 33 states and 118 transitions. Second operand 8 states. [2019-01-31 14:45:09,463 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:09,464 INFO L93 Difference]: Finished difference Result 57 states and 149 transitions. [2019-01-31 14:45:09,464 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:45:09,464 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:45:09,464 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:45:09,464 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:45:09,465 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 58 transitions. [2019-01-31 14:45:09,465 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:45:09,465 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 58 transitions. [2019-01-31 14:45:09,466 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 58 transitions. [2019-01-31 14:45:09,563 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 58 edges. 58 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:45:09,564 INFO L225 Difference]: With dead ends: 57 [2019-01-31 14:45:09,565 INFO L226 Difference]: Without dead ends: 55 [2019-01-31 14:45:09,565 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:45:09,565 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 55 states. [2019-01-31 14:45:10,220 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 55 to 33. [2019-01-31 14:45:10,221 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:45:10,221 INFO L82 GeneralOperation]: Start isEquivalent. First operand 55 states. Second operand 33 states. [2019-01-31 14:45:10,221 INFO L74 IsIncluded]: Start isIncluded. First operand 55 states. Second operand 33 states. [2019-01-31 14:45:10,221 INFO L87 Difference]: Start difference. First operand 55 states. Second operand 33 states. [2019-01-31 14:45:10,223 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:10,223 INFO L93 Difference]: Finished difference Result 55 states and 146 transitions. [2019-01-31 14:45:10,223 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 146 transitions. [2019-01-31 14:45:10,224 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:10,224 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:10,224 INFO L74 IsIncluded]: Start isIncluded. First operand 33 states. Second operand 55 states. [2019-01-31 14:45:10,224 INFO L87 Difference]: Start difference. First operand 33 states. Second operand 55 states. [2019-01-31 14:45:10,226 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:10,226 INFO L93 Difference]: Finished difference Result 55 states and 146 transitions. [2019-01-31 14:45:10,226 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 146 transitions. [2019-01-31 14:45:10,226 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:10,226 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:10,227 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:45:10,227 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:45:10,227 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 33 states. [2019-01-31 14:45:10,228 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 33 states to 33 states and 117 transitions. [2019-01-31 14:45:10,228 INFO L78 Accepts]: Start accepts. Automaton has 33 states and 117 transitions. Word has length 4 [2019-01-31 14:45:10,228 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:45:10,228 INFO L480 AbstractCegarLoop]: Abstraction has 33 states and 117 transitions. [2019-01-31 14:45:10,228 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:45:10,228 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 117 transitions. [2019-01-31 14:45:10,229 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:45:10,229 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:45:10,229 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:45:10,229 INFO L423 AbstractCegarLoop]: === Iteration 15 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:45:10,229 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:10,230 INFO L82 PathProgramCache]: Analyzing trace with hash 933340, now seen corresponding path program 1 times [2019-01-31 14:45:10,230 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:45:10,230 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:10,231 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-31 14:45:10,231 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:10,231 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:45:10,237 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:10,646 INFO L273 TraceCheckUtils]: 0: Hoare triple {2700#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {2702#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:45:10,648 INFO L273 TraceCheckUtils]: 1: Hoare triple {2702#(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]; {2703#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:45:10,649 INFO L273 TraceCheckUtils]: 2: Hoare triple {2703#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2704#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:45:10,649 INFO L273 TraceCheckUtils]: 3: Hoare triple {2704#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {2701#false} is VALID [2019-01-31 14:45:10,650 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:10,650 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:10,650 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:45:10,650 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-31 14:45:10,650 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [23] [2019-01-31 14:45:10,652 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:45:10,652 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:45:10,671 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:45:10,671 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 2. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:45:10,671 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:10,671 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:45:10,671 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:10,672 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 13 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 13 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:45:10,681 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:45:10,681 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:45:10,685 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:10,689 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:10,689 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:45:10,726 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:10,727 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-31 14:45:10,773 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:10,774 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:10,775 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-31 14:45:10,826 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:10,827 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:10,829 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:10,831 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:10,831 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 25 [2019-01-31 14:45:10,835 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:10,851 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:10,864 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:10,887 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 21 [2019-01-31 14:45:10,966 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 5 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 27 [2019-01-31 14:45:10,977 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 6 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:45:10,990 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:45:11,078 INFO L478 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 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:45:11,081 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:11,105 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:11,121 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:11,134 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:11,145 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:11,175 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 2 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:11,175 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 5 variables, input treesize:52, output treesize:50 [2019-01-31 14:45:11,186 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:11,186 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_72|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, |v_#valid_18|]. (let ((.cse0 (store |v_#valid_18| ULTIMATE.start_main_p1 1))) (let ((.cse1 (store .cse0 ULTIMATE.start_main_p2 1))) (and (= |#memory_int| (store (store (store (store (store |v_#memory_int_72| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0)) (= 0 (select .cse0 ULTIMATE.start_main_p2)) (= 0 (select (store .cse1 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4)) (= 0 (select .cse1 ULTIMATE.start_main_p3))))) [2019-01-31 14:45:11,187 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:45:11,265 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:11,266 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:45:11,290 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:11,325 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:11,326 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:55, output treesize:33 [2019-01-31 14:45:21,477 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:21,478 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_73|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_73| ULTIMATE.start_main_p2))) (and (= 0 (select |v_#memory_int_73| ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (store |v_#memory_int_73| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_73| ULTIMATE.start_main_p1) 0) (= 0 (select |v_#memory_int_73| ULTIMATE.start_main_p3)) (= .cse0 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-31 14:45:21,478 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:45:21,535 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:21,536 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:21,538 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:21,539 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:21,540 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:21,541 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:21,542 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-31 14:45:21,545 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:21,574 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:21,574 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:45, output treesize:27 [2019-01-31 14:45:21,588 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:21,588 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_74|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_74| ULTIMATE.start_main_p1))) (and (= (select |v_#memory_int_74| ULTIMATE.start_main_p4) 0) (= |#memory_int| (store |v_#memory_int_74| ULTIMATE.start_main_p1 (+ .cse0 1))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (+ (select |v_#memory_int_74| ULTIMATE.start_main_p2) 1) 0) (= .cse0 0) (= (select |v_#memory_int_74| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-31 14:45:21,588 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:45:21,609 INFO L273 TraceCheckUtils]: 0: Hoare triple {2700#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {2708#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-31 14:45:21,611 INFO L273 TraceCheckUtils]: 1: Hoare triple {2708#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2712#(and (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-31 14:45:21,613 INFO L273 TraceCheckUtils]: 2: Hoare triple {2712#(and (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2716#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-31 14:45:21,614 INFO L273 TraceCheckUtils]: 3: Hoare triple {2716#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p1] >= 0); {2701#false} is VALID [2019-01-31 14:45:21,615 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:21,615 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:45:21,648 INFO L273 TraceCheckUtils]: 3: Hoare triple {2704#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {2701#false} is VALID [2019-01-31 14:45:21,649 INFO L273 TraceCheckUtils]: 2: Hoare triple {2723#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2704#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:45:21,650 INFO L273 TraceCheckUtils]: 1: Hoare triple {2727#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2723#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} is VALID [2019-01-31 14:45:21,652 INFO L273 TraceCheckUtils]: 0: Hoare triple {2700#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {2727#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1))} is VALID [2019-01-31 14:45:21,653 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:21,672 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:45:21,672 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-01-31 14:45:21,673 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:45:21,673 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:45:21,673 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:45:21,673 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:45:21,684 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:45:21,684 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:45:21,684 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:45:21,685 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=51, Unknown=0, NotChecked=0, Total=90 [2019-01-31 14:45:21,685 INFO L87 Difference]: Start difference. First operand 33 states and 117 transitions. Second operand 8 states. [2019-01-31 14:45:22,617 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:22,617 INFO L93 Difference]: Finished difference Result 61 states and 173 transitions. [2019-01-31 14:45:22,617 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:45:22,618 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:45:22,618 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:45:22,618 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:45:22,619 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 64 transitions. [2019-01-31 14:45:22,619 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:45:22,620 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 64 transitions. [2019-01-31 14:45:22,620 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 64 transitions. [2019-01-31 14:45:22,721 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 64 edges. 64 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:45:22,722 INFO L225 Difference]: With dead ends: 61 [2019-01-31 14:45:22,722 INFO L226 Difference]: Without dead ends: 60 [2019-01-31 14:45:22,723 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 9 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 24 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=47, Invalid=63, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:45:22,723 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 60 states. [2019-01-31 14:45:22,943 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 60 to 36. [2019-01-31 14:45:22,944 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:45:22,944 INFO L82 GeneralOperation]: Start isEquivalent. First operand 60 states. Second operand 36 states. [2019-01-31 14:45:22,944 INFO L74 IsIncluded]: Start isIncluded. First operand 60 states. Second operand 36 states. [2019-01-31 14:45:22,944 INFO L87 Difference]: Start difference. First operand 60 states. Second operand 36 states. [2019-01-31 14:45:22,955 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:22,955 INFO L93 Difference]: Finished difference Result 60 states and 171 transitions. [2019-01-31 14:45:22,955 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 171 transitions. [2019-01-31 14:45:22,955 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:22,956 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:22,956 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 60 states. [2019-01-31 14:45:22,956 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 60 states. [2019-01-31 14:45:22,958 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:22,958 INFO L93 Difference]: Finished difference Result 60 states and 171 transitions. [2019-01-31 14:45:22,958 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 171 transitions. [2019-01-31 14:45:22,958 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:22,959 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:22,959 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:45:22,959 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:45:22,959 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 36 states. [2019-01-31 14:45:22,960 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 36 states to 36 states and 135 transitions. [2019-01-31 14:45:22,960 INFO L78 Accepts]: Start accepts. Automaton has 36 states and 135 transitions. Word has length 4 [2019-01-31 14:45:22,961 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:45:22,961 INFO L480 AbstractCegarLoop]: Abstraction has 36 states and 135 transitions. [2019-01-31 14:45:22,961 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:45:22,961 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 135 transitions. [2019-01-31 14:45:22,961 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:45:22,961 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:45:22,961 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:45:22,962 INFO L423 AbstractCegarLoop]: === Iteration 16 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:45:22,962 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:22,962 INFO L82 PathProgramCache]: Analyzing trace with hash 937744, now seen corresponding path program 1 times [2019-01-31 14:45:22,963 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:45:22,963 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:22,963 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:45:22,963 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:22,964 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:45:22,971 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:23,329 INFO L273 TraceCheckUtils]: 0: Hoare triple {2992#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {2994#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:45:23,330 INFO L273 TraceCheckUtils]: 1: Hoare triple {2994#(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]; {2995#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:45:23,330 INFO L273 TraceCheckUtils]: 2: Hoare triple {2995#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {2995#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:45:23,331 INFO L273 TraceCheckUtils]: 3: Hoare triple {2995#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {2993#false} is VALID [2019-01-31 14:45:23,331 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:23,332 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:23,332 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:45:23,332 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-31 14:45:23,332 INFO L207 CegarAbsIntRunner]: [0], [14], [24], [25] [2019-01-31 14:45:23,334 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:45:23,334 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:45:23,346 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:45:23,346 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 2. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-31 14:45:23,347 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:23,347 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:45:23,347 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:23,347 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 14 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 14 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:45:23,357 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:45:23,358 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:45:23,364 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:23,382 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:23,383 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:45:23,434 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 21 [2019-01-31 14:45:23,450 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:45:23,458 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:23,460 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:23,461 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 33 [2019-01-31 14:45:23,475 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:23,476 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:23,477 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:23,478 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 5 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 47 [2019-01-31 14:45:23,492 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:23,494 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:23,496 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:23,497 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:23,498 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 62 [2019-01-31 14:45:23,505 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:23,533 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:23,550 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:23,563 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:23,575 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:23,598 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 43 treesize of output 39 [2019-01-31 14:45:23,623 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:23,625 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:23,627 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 49 [2019-01-31 14:45:23,679 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:23,680 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:23,683 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:23,684 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:23,685 INFO L478 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 32 treesize of output 57 [2019-01-31 14:45:23,758 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:23,759 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:23,760 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:23,761 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:23,762 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:23,763 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:23,764 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 37 [2019-01-31 14:45:23,768 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:23,784 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:23,801 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:23,820 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:23,894 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 2 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:23,894 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 5 variables, input treesize:61, output treesize:62 [2019-01-31 14:45:23,900 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:23,901 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_77|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_malloc_ptr, |v_#valid_19|]. (let ((.cse1 (store (store |v_#valid_19| ULTIMATE.start_main_p1 1) ULTIMATE.start_main_p2 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p3 1))) (and (= (select .cse0 ULTIMATE.start_main_p4) 0) (= 0 (select .cse1 ULTIMATE.start_main_p3)) (= 0 (select (store .cse0 ULTIMATE.start_main_p4 1) ULTIMATE.start_malloc_ptr)) (= (store (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) ULTIMATE.start_malloc_ptr 0) |#memory_int|)))) [2019-01-31 14:45:23,901 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_malloc_ptr]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:45:23,975 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:23,976 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 68 [2019-01-31 14:45:23,980 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:24,019 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:24,019 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:72, output treesize:46 [2019-01-31 14:45:34,710 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:34,710 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_78|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_78| ULTIMATE.start_main_p3))) (and (= (select |v_#memory_int_78| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_78| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_78| ULTIMATE.start_malloc_ptr) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (store |v_#memory_int_78| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_78| ULTIMATE.start_main_p1) 0) (= .cse0 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)))) [2019-01-31 14:45:34,710 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3]. (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr))) [2019-01-31 14:45:34,787 INFO L273 TraceCheckUtils]: 0: Hoare triple {2992#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {2999#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-31 14:45:34,790 INFO L273 TraceCheckUtils]: 1: Hoare triple {2999#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {3003#(and (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))))} is VALID [2019-01-31 14:45:34,792 INFO L273 TraceCheckUtils]: 2: Hoare triple {3003#(and (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))))} assume #memory_int[main_p1] >= 0; {3003#(and (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))))} is VALID [2019-01-31 14:45:34,793 INFO L273 TraceCheckUtils]: 3: Hoare triple {3003#(and (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))))} assume !(#memory_int[main_p2] <= 0); {2993#false} is VALID [2019-01-31 14:45:34,793 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:34,793 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:45:34,817 INFO L273 TraceCheckUtils]: 3: Hoare triple {3010#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {2993#false} is VALID [2019-01-31 14:45:34,818 INFO L273 TraceCheckUtils]: 2: Hoare triple {3010#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {3010#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:45:34,819 INFO L273 TraceCheckUtils]: 1: Hoare triple {3017#(<= (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]; {3010#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:45:34,821 INFO L273 TraceCheckUtils]: 0: Hoare triple {2992#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {3017#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:45:34,822 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:34,843 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:45:34,843 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-31 14:45:34,843 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:45:34,844 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-31 14:45:34,844 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:45:34,844 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-31 14:45:34,858 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:45:34,858 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-31 14:45:34,858 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-31 14:45:34,858 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-31 14:45:34,858 INFO L87 Difference]: Start difference. First operand 36 states and 135 transitions. Second operand 6 states. [2019-01-31 14:45:35,420 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:35,421 INFO L93 Difference]: Finished difference Result 53 states and 161 transitions. [2019-01-31 14:45:35,421 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-31 14:45:35,421 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-31 14:45:35,422 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:45:35,422 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:45:35,422 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 46 transitions. [2019-01-31 14:45:35,422 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:45:35,423 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 46 transitions. [2019-01-31 14:45:35,423 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 46 transitions. [2019-01-31 14:45:35,870 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 46 edges. 46 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:45:35,871 INFO L225 Difference]: With dead ends: 53 [2019-01-31 14:45:35,872 INFO L226 Difference]: Without dead ends: 52 [2019-01-31 14:45:35,872 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 9 GetRequests, 2 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-01-31 14:45:35,872 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 52 states. [2019-01-31 14:45:36,199 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 52 to 37. [2019-01-31 14:45:36,199 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:45:36,199 INFO L82 GeneralOperation]: Start isEquivalent. First operand 52 states. Second operand 37 states. [2019-01-31 14:45:36,200 INFO L74 IsIncluded]: Start isIncluded. First operand 52 states. Second operand 37 states. [2019-01-31 14:45:36,200 INFO L87 Difference]: Start difference. First operand 52 states. Second operand 37 states. [2019-01-31 14:45:36,202 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:36,202 INFO L93 Difference]: Finished difference Result 52 states and 159 transitions. [2019-01-31 14:45:36,202 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 159 transitions. [2019-01-31 14:45:36,202 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:36,202 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:36,202 INFO L74 IsIncluded]: Start isIncluded. First operand 37 states. Second operand 52 states. [2019-01-31 14:45:36,203 INFO L87 Difference]: Start difference. First operand 37 states. Second operand 52 states. [2019-01-31 14:45:36,204 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:36,204 INFO L93 Difference]: Finished difference Result 52 states and 159 transitions. [2019-01-31 14:45:36,204 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 159 transitions. [2019-01-31 14:45:36,205 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:36,205 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:36,205 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:45:36,205 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:45:36,205 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 37 states. [2019-01-31 14:45:36,207 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 37 states to 37 states and 141 transitions. [2019-01-31 14:45:36,207 INFO L78 Accepts]: Start accepts. Automaton has 37 states and 141 transitions. Word has length 4 [2019-01-31 14:45:36,207 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:45:36,207 INFO L480 AbstractCegarLoop]: Abstraction has 37 states and 141 transitions. [2019-01-31 14:45:36,207 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-31 14:45:36,207 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 141 transitions. [2019-01-31 14:45:36,207 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:45:36,208 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:45:36,208 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:45:36,208 INFO L423 AbstractCegarLoop]: === Iteration 17 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:45:36,208 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:36,208 INFO L82 PathProgramCache]: Analyzing trace with hash 937308, now seen corresponding path program 1 times [2019-01-31 14:45:36,208 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:45:36,209 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:36,209 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:45:36,209 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:36,209 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:45:36,216 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:36,360 INFO L273 TraceCheckUtils]: 0: Hoare triple {3259#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {3261#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:45:36,362 INFO L273 TraceCheckUtils]: 1: Hoare triple {3261#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 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]; {3262#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:45:36,363 INFO L273 TraceCheckUtils]: 2: Hoare triple {3262#(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]; {3263#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:45:36,363 INFO L273 TraceCheckUtils]: 3: Hoare triple {3263#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {3260#false} is VALID [2019-01-31 14:45:36,364 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:36,364 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:36,364 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:45:36,364 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-31 14:45:36,364 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [23] [2019-01-31 14:45:36,365 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:45:36,365 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:45:36,379 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:45:36,379 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 2. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:45:36,379 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:36,380 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:45:36,380 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:36,380 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 15 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 15 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:45:36,388 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:45:36,389 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:45:36,394 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:36,399 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:36,399 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:45:36,451 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 21 [2019-01-31 14:45:36,457 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 27 [2019-01-31 14:45:36,464 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:36,465 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:36,466 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:45:36,476 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:36,478 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:36,479 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:36,480 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:45:36,496 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:36,497 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:36,499 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:36,500 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:36,501 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:45:36,505 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:36,537 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:36,556 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:36,570 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:36,583 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:36,614 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:36,615 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 48 treesize of output 54 [2019-01-31 14:45:36,667 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:36,669 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:36,670 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 41 treesize of output 53 [2019-01-31 14:45:36,727 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:36,728 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:36,730 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:36,731 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:36,732 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 61 [2019-01-31 14:45:36,804 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:36,806 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:36,807 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:36,808 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:36,809 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:36,810 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:36,811 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 11 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 41 [2019-01-31 14:45:36,814 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:36,833 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:36,852 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:36,873 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:36,968 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:36,969 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 4 variables, input treesize:69, output treesize:66 [2019-01-31 14:45:36,975 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:36,975 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_80|, ULTIMATE.start_main_p4, ULTIMATE.start_malloc_ptr, |v_#valid_20|]. (let ((.cse0 (store |v_#valid_20| ULTIMATE.start_main_p1 1))) (let ((.cse1 (store .cse0 ULTIMATE.start_main_p2 1))) (let ((.cse2 (store .cse1 ULTIMATE.start_main_p3 1))) (and (= (select .cse0 ULTIMATE.start_main_p2) 0) (= (store (store (store (store (store |v_#memory_int_80| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_malloc_ptr 0) |#memory_int|) (= 0 (select .cse1 ULTIMATE.start_main_p3)) (= (select (store .cse2 ULTIMATE.start_main_p4 1) ULTIMATE.start_malloc_ptr) 0) (= 0 (select .cse2 ULTIMATE.start_main_p4)))))) [2019-01-31 14:45:36,976 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_malloc_ptr]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:45:37,060 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:37,061 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 11 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 72 [2019-01-31 14:45:37,065 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:37,106 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:37,106 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:76, output treesize:50 [2019-01-31 14:45:47,116 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:47,116 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_81|, ULTIMATE.start_main_p3, ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_81| ULTIMATE.start_main_p3))) (and (= (select |v_#memory_int_81| ULTIMATE.start_main_p1) 0) (= 0 (select |v_#memory_int_81| ULTIMATE.start_malloc_ptr)) (= (store |v_#memory_int_81| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 (select |v_#memory_int_81| ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_81| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 .cse0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)))) [2019-01-31 14:45:47,116 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr))) [2019-01-31 14:45:47,205 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:47,207 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:47,208 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:47,209 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:47,210 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:47,210 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:47,211 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:47,212 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 86 [2019-01-31 14:45:47,248 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:47,351 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:47,351 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:60, output treesize:38 [2019-01-31 14:45:57,535 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:57,535 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_82|, ULTIMATE.start_main_p2, ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_82| ULTIMATE.start_main_p2))) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_82| ULTIMATE.start_malloc_ptr)) (= 0 .cse0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= (store |v_#memory_int_82| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_82| ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_82| ULTIMATE.start_main_p3) 1) (= (select |v_#memory_int_82| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-31 14:45:57,535 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr))) [2019-01-31 14:45:57,605 INFO L273 TraceCheckUtils]: 0: Hoare triple {3259#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {3267#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-31 14:45:57,609 INFO L273 TraceCheckUtils]: 1: Hoare triple {3267#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {3271#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:45:57,612 INFO L273 TraceCheckUtils]: 2: Hoare triple {3271#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {3275#(and (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)))} is VALID [2019-01-31 14:45:57,613 INFO L273 TraceCheckUtils]: 3: Hoare triple {3275#(and (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)))} assume !(#memory_int[main_p1] >= 0); {3260#false} is VALID [2019-01-31 14:45:57,614 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:57,614 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:45:57,660 INFO L273 TraceCheckUtils]: 3: Hoare triple {3279#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {3260#false} is VALID [2019-01-31 14:45:57,661 INFO L273 TraceCheckUtils]: 2: Hoare triple {3283#(<= 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]; {3279#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:45:57,663 INFO L273 TraceCheckUtils]: 1: Hoare triple {3287#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {3283#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:45:57,666 INFO L273 TraceCheckUtils]: 0: Hoare triple {3259#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {3287#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:45:57,667 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:57,689 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:45:57,689 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:45:57,689 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:45:57,690 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:45:57,690 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:45:57,690 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:45:57,705 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:45:57,705 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:45:57,706 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:45:57,706 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:45:57,706 INFO L87 Difference]: Start difference. First operand 37 states and 141 transitions. Second operand 8 states. [2019-01-31 14:45:59,243 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:59,244 INFO L93 Difference]: Finished difference Result 69 states and 192 transitions. [2019-01-31 14:45:59,244 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:45:59,244 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:45:59,244 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:45:59,244 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:45:59,245 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 60 transitions. [2019-01-31 14:45:59,245 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:45:59,246 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 60 transitions. [2019-01-31 14:45:59,246 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 60 transitions. [2019-01-31 14:45:59,376 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 60 edges. 60 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:45:59,378 INFO L225 Difference]: With dead ends: 69 [2019-01-31 14:45:59,378 INFO L226 Difference]: Without dead ends: 68 [2019-01-31 14:45:59,379 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:45:59,379 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 68 states. [2019-01-31 14:45:59,616 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 68 to 39. [2019-01-31 14:45:59,616 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:45:59,616 INFO L82 GeneralOperation]: Start isEquivalent. First operand 68 states. Second operand 39 states. [2019-01-31 14:45:59,616 INFO L74 IsIncluded]: Start isIncluded. First operand 68 states. Second operand 39 states. [2019-01-31 14:45:59,617 INFO L87 Difference]: Start difference. First operand 68 states. Second operand 39 states. [2019-01-31 14:45:59,620 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:59,620 INFO L93 Difference]: Finished difference Result 68 states and 190 transitions. [2019-01-31 14:45:59,620 INFO L276 IsEmpty]: Start isEmpty. Operand 68 states and 190 transitions. [2019-01-31 14:45:59,621 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:59,621 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:59,621 INFO L74 IsIncluded]: Start isIncluded. First operand 39 states. Second operand 68 states. [2019-01-31 14:45:59,621 INFO L87 Difference]: Start difference. First operand 39 states. Second operand 68 states. [2019-01-31 14:45:59,623 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:59,623 INFO L93 Difference]: Finished difference Result 68 states and 190 transitions. [2019-01-31 14:45:59,623 INFO L276 IsEmpty]: Start isEmpty. Operand 68 states and 190 transitions. [2019-01-31 14:45:59,624 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:59,624 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:59,624 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:45:59,624 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:45:59,624 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 39 states. [2019-01-31 14:45:59,625 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 39 states to 39 states and 153 transitions. [2019-01-31 14:45:59,626 INFO L78 Accepts]: Start accepts. Automaton has 39 states and 153 transitions. Word has length 4 [2019-01-31 14:45:59,626 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:45:59,626 INFO L480 AbstractCegarLoop]: Abstraction has 39 states and 153 transitions. [2019-01-31 14:45:59,626 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:45:59,626 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 153 transitions. [2019-01-31 14:45:59,626 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:45:59,627 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:45:59,627 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1] [2019-01-31 14:45:59,627 INFO L423 AbstractCegarLoop]: === Iteration 18 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:45:59,627 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:59,627 INFO L82 PathProgramCache]: Analyzing trace with hash 29182896, now seen corresponding path program 2 times [2019-01-31 14:45:59,627 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:45:59,628 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:59,628 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:45:59,628 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:59,629 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:45:59,635 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:00,012 WARN L181 SmtUtils]: Spent 226.00 ms on a formula simplification. DAG size of input: 17 DAG size of output: 13 [2019-01-31 14:46:00,045 INFO L273 TraceCheckUtils]: 0: Hoare triple {3586#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {3588#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:46:00,046 INFO L273 TraceCheckUtils]: 1: Hoare triple {3588#(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]; {3588#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:46:00,047 INFO L273 TraceCheckUtils]: 2: Hoare triple {3588#(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]; {3589#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:46:00,048 INFO L273 TraceCheckUtils]: 3: Hoare triple {3589#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {3590#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:46:00,049 INFO L273 TraceCheckUtils]: 4: Hoare triple {3590#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {3587#false} is VALID [2019-01-31 14:46:00,049 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:46:00,050 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:46:00,050 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:46:00,050 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-31 14:46:00,050 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-31 14:46:00,050 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:46:00,050 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 16 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 16 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:46:00,060 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-31 14:46:00,060 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-31 14:46:00,066 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-31 14:46:00,066 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-31 14:46:00,071 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:00,071 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:46:00,118 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 21 [2019-01-31 14:46:00,126 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 27 [2019-01-31 14:46:00,136 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,138 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,139 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:46:00,186 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,187 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,189 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,190 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:46:00,203 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,205 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,206 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,207 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,209 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:46:00,228 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:00,343 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:00,359 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:00,373 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:00,386 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:00,417 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,418 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 48 treesize of output 54 [2019-01-31 14:46:00,469 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,470 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,471 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 41 treesize of output 53 [2019-01-31 14:46:00,529 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,530 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,531 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,532 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,533 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 61 [2019-01-31 14:46:00,606 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,608 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,609 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,610 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,612 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,613 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,614 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 11 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 41 [2019-01-31 14:46:00,617 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:00,634 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:00,653 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:00,672 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:00,740 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 2 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:00,740 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 5 variables, input treesize:69, output treesize:66 [2019-01-31 14:46:00,756 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:00,757 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_85|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_malloc_ptr, |v_#valid_21|]. (let ((.cse2 (store |v_#valid_21| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse2 ULTIMATE.start_main_p2 1))) (let ((.cse1 (store .cse0 ULTIMATE.start_main_p3 1))) (and (= (select .cse0 ULTIMATE.start_main_p3) 0) (= 0 (select (store .cse1 ULTIMATE.start_main_p4 1) ULTIMATE.start_malloc_ptr)) (= (store (store (store (store (store |v_#memory_int_85| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_malloc_ptr 0) |#memory_int|) (= 0 (select .cse1 ULTIMATE.start_main_p4)) (= 0 (select .cse2 ULTIMATE.start_main_p2)))))) [2019-01-31 14:46:00,757 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_malloc_ptr]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:46:00,862 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,863 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 11 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 66 [2019-01-31 14:46:00,867 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:00,910 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:00,910 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:76, output treesize:50 [2019-01-31 14:46:00,919 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:00,920 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_86|, ULTIMATE.start_main_p3, ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_86| ULTIMATE.start_main_p4))) (and (= .cse0 0) (= (select |v_#memory_int_86| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_86| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (store |v_#memory_int_86| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_86| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |v_#memory_int_86| ULTIMATE.start_malloc_ptr)))) [2019-01-31 14:46:00,920 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr))) [2019-01-31 14:46:01,004 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:01,006 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:01,006 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:01,008 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:01,009 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:01,010 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:01,011 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:01,012 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 78 [2019-01-31 14:46:01,016 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:01,060 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:01,061 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:62, output treesize:50 [2019-01-31 14:46:01,087 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:01,088 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_87|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_87| ULTIMATE.start_main_p4))) (and (= (select |v_#memory_int_87| ULTIMATE.start_main_p3) 0) (= 0 (select |v_#memory_int_87| ULTIMATE.start_malloc_ptr)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= |#memory_int| (store |v_#memory_int_87| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= (+ .cse0 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_87| ULTIMATE.start_main_p2) 0) (= 0 (select |v_#memory_int_87| ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)))) [2019-01-31 14:46:01,088 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr))) [2019-01-31 14:46:01,146 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:01,147 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:01,148 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:01,150 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:01,151 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:01,152 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:01,153 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:01,154 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 80 [2019-01-31 14:46:01,158 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:01,198 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:01,199 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:62, output treesize:40 [2019-01-31 14:46:01,215 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:01,215 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_88|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_88| ULTIMATE.start_main_p1))) (and (= (select |v_#memory_int_88| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_88| ULTIMATE.start_malloc_ptr) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= (+ (select |v_#memory_int_88| ULTIMATE.start_main_p4) 2) 0) (= (select |v_#memory_int_88| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= .cse0 0) (= (store |v_#memory_int_88| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)))) [2019-01-31 14:46:01,215 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr))) [2019-01-31 14:46:01,246 INFO L273 TraceCheckUtils]: 0: Hoare triple {3586#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {3594#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_malloc_ptr Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:46:01,248 INFO L273 TraceCheckUtils]: 1: Hoare triple {3594#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_malloc_ptr Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3598#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_malloc_ptr Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))))} is VALID [2019-01-31 14:46:01,250 INFO L273 TraceCheckUtils]: 2: Hoare triple {3598#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_malloc_ptr Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3602#(and (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_malloc_ptr Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))))} is VALID [2019-01-31 14:46:01,253 INFO L273 TraceCheckUtils]: 3: Hoare triple {3602#(and (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_malloc_ptr Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {3606#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_malloc_ptr Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))))} is VALID [2019-01-31 14:46:01,254 INFO L273 TraceCheckUtils]: 4: Hoare triple {3606#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_malloc_ptr Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))))} assume !(#memory_int[main_p1] >= 0); {3587#false} is VALID [2019-01-31 14:46:01,254 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:46:01,254 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:46:01,292 INFO L273 TraceCheckUtils]: 4: Hoare triple {3590#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {3587#false} is VALID [2019-01-31 14:46:01,293 INFO L273 TraceCheckUtils]: 3: Hoare triple {3613#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {3590#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:46:01,293 INFO L273 TraceCheckUtils]: 2: Hoare triple {3617#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3613#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} is VALID [2019-01-31 14:46:01,295 INFO L273 TraceCheckUtils]: 1: Hoare triple {3621#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 2))) ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3617#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1))} is VALID [2019-01-31 14:46:01,297 INFO L273 TraceCheckUtils]: 0: Hoare triple {3586#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {3621#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 2))) ULTIMATE.start_main_p1) 1))} is VALID [2019-01-31 14:46:01,297 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:46:01,316 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:46:01,316 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 4, 4] total 10 [2019-01-31 14:46:01,316 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:46:01,316 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 5 [2019-01-31 14:46:01,316 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:46:01,317 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states. [2019-01-31 14:46:01,332 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:46:01,332 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2019-01-31 14:46:01,332 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2019-01-31 14:46:01,332 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=54, Invalid=78, Unknown=0, NotChecked=0, Total=132 [2019-01-31 14:46:01,332 INFO L87 Difference]: Start difference. First operand 39 states and 153 transitions. Second operand 9 states. [2019-01-31 14:46:02,727 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:02,727 INFO L93 Difference]: Finished difference Result 73 states and 219 transitions. [2019-01-31 14:46:02,727 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-31 14:46:02,727 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 5 [2019-01-31 14:46:02,727 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:46:02,727 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-01-31 14:46:02,728 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 76 transitions. [2019-01-31 14:46:02,728 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-01-31 14:46:02,728 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 76 transitions. [2019-01-31 14:46:02,728 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 76 transitions. [2019-01-31 14:46:02,860 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 76 edges. 76 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:46:02,861 INFO L225 Difference]: With dead ends: 73 [2019-01-31 14:46:02,862 INFO L226 Difference]: Without dead ends: 71 [2019-01-31 14:46:02,862 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 43 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=63, Invalid=93, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:46:02,862 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 71 states. [2019-01-31 14:46:03,152 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 71 to 42. [2019-01-31 14:46:03,153 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:46:03,153 INFO L82 GeneralOperation]: Start isEquivalent. First operand 71 states. Second operand 42 states. [2019-01-31 14:46:03,153 INFO L74 IsIncluded]: Start isIncluded. First operand 71 states. Second operand 42 states. [2019-01-31 14:46:03,153 INFO L87 Difference]: Start difference. First operand 71 states. Second operand 42 states. [2019-01-31 14:46:03,155 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:03,156 INFO L93 Difference]: Finished difference Result 71 states and 216 transitions. [2019-01-31 14:46:03,156 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 216 transitions. [2019-01-31 14:46:03,156 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:46:03,156 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:46:03,157 INFO L74 IsIncluded]: Start isIncluded. First operand 42 states. Second operand 71 states. [2019-01-31 14:46:03,157 INFO L87 Difference]: Start difference. First operand 42 states. Second operand 71 states. [2019-01-31 14:46:03,159 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:03,159 INFO L93 Difference]: Finished difference Result 71 states and 216 transitions. [2019-01-31 14:46:03,159 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 216 transitions. [2019-01-31 14:46:03,159 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:46:03,159 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:46:03,160 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:46:03,160 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:46:03,160 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 42 states. [2019-01-31 14:46:03,161 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 42 states to 42 states and 171 transitions. [2019-01-31 14:46:03,161 INFO L78 Accepts]: Start accepts. Automaton has 42 states and 171 transitions. Word has length 5 [2019-01-31 14:46:03,161 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:46:03,161 INFO L480 AbstractCegarLoop]: Abstraction has 42 states and 171 transitions. [2019-01-31 14:46:03,162 INFO L481 AbstractCegarLoop]: Interpolant automaton has 9 states. [2019-01-31 14:46:03,162 INFO L276 IsEmpty]: Start isEmpty. Operand 42 states and 171 transitions. [2019-01-31 14:46:03,162 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:46:03,162 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:46:03,162 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:46:03,162 INFO L423 AbstractCegarLoop]: === Iteration 19 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:46:03,163 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:46:03,163 INFO L82 PathProgramCache]: Analyzing trace with hash 29185378, now seen corresponding path program 1 times [2019-01-31 14:46:03,163 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:46:03,164 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:46:03,164 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-31 14:46:03,164 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:46:03,164 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:46:03,172 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:03,274 INFO L273 TraceCheckUtils]: 0: Hoare triple {3939#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {3941#(and (or (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2))) (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (or (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p5)))} is VALID [2019-01-31 14:46:03,276 INFO L273 TraceCheckUtils]: 1: Hoare triple {3941#(and (or (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2))) (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (or (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p5)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3942#(or (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 1) 0) (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2))))} is VALID [2019-01-31 14:46:03,277 INFO L273 TraceCheckUtils]: 2: Hoare triple {3942#(or (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 1) 0) (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {3943#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:46:03,277 INFO L273 TraceCheckUtils]: 3: Hoare triple {3943#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {3943#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:46:03,277 INFO L273 TraceCheckUtils]: 4: Hoare triple {3943#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {3940#false} is VALID [2019-01-31 14:46:03,278 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:46:03,278 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:46:03,278 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:46:03,278 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:46:03,278 INFO L207 CegarAbsIntRunner]: [0], [18], [20], [24], [25] [2019-01-31 14:46:03,280 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:46:03,280 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:46:03,313 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:46:03,313 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 2. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:46:03,313 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:46:03,313 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:46:03,314 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:46:03,314 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 17 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 17 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:46:03,322 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:46:03,322 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:46:03,326 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:03,330 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:03,331 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:46:03,413 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 21 [2019-01-31 14:46:03,419 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:46:03,428 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:03,430 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:03,431 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 33 [2019-01-31 14:46:03,444 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:03,445 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:03,447 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:03,448 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 5 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 47 [2019-01-31 14:46:03,466 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:03,470 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:03,471 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:03,472 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:03,474 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 62 [2019-01-31 14:46:03,477 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:03,507 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:03,522 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:03,540 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:03,551 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:03,575 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 43 treesize of output 39 [2019-01-31 14:46:03,601 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:03,604 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:03,605 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 49 [2019-01-31 14:46:03,656 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:03,658 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:03,660 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:03,661 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:03,662 INFO L478 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 32 treesize of output 57 [2019-01-31 14:46:03,726 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:03,727 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:03,729 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:03,730 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:03,731 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:03,733 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:03,734 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 37 [2019-01-31 14:46:03,736 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:03,753 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:03,768 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:03,784 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:03,820 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:03,820 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 4 variables, input treesize:61, output treesize:62 [2019-01-31 14:46:03,827 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:03,827 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_92|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, |v_#valid_22|]. (let ((.cse0 (store (store |v_#valid_22| ULTIMATE.start_main_p1 1) ULTIMATE.start_main_p2 1))) (let ((.cse1 (store .cse0 ULTIMATE.start_main_p3 1))) (and (= (select .cse0 ULTIMATE.start_main_p3) 0) (= |#memory_int| (store (store (store (store (store |v_#memory_int_92| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0)) (= 0 (select (store .cse1 ULTIMATE.start_main_p4 1) ULTIMATE.start_main_p5)) (= 0 (select .cse1 ULTIMATE.start_main_p4))))) [2019-01-31 14:46:03,827 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p1]. (and (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:46:03,910 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:03,911 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 62 [2019-01-31 14:46:03,914 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:03,947 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:03,947 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:72, output treesize:46 [2019-01-31 14:46:14,994 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:14,995 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_93|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_93| ULTIMATE.start_main_p4))) (and (= (select |v_#memory_int_93| ULTIMATE.start_main_p1) 0) (= 0 (select |v_#memory_int_93| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_93| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_93| ULTIMATE.start_main_p5) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (store |v_#memory_int_93| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= .cse0 0))) [2019-01-31 14:46:14,995 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-31 14:46:15,143 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:15,144 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:15,145 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:15,146 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:15,149 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:15,150 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:15,151 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:15,152 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 12 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 76 [2019-01-31 14:46:15,160 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:15,192 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:15,192 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:58, output treesize:36 [2019-01-31 14:46:26,220 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:26,221 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_94|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_94| ULTIMATE.start_main_p5))) (and (= (select |v_#memory_int_94| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_94| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (+ (select |v_#memory_int_94| ULTIMATE.start_main_p4) 1)) (= .cse0 0) (= (store |v_#memory_int_94| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_94| ULTIMATE.start_main_p2) 0))) [2019-01-31 14:46:26,221 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-31 14:46:26,302 INFO L273 TraceCheckUtils]: 0: Hoare triple {3939#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {3947#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:46:26,305 INFO L273 TraceCheckUtils]: 1: Hoare triple {3947#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3951#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:46:26,307 INFO L273 TraceCheckUtils]: 2: Hoare triple {3951#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {3955#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:46:26,308 INFO L273 TraceCheckUtils]: 3: Hoare triple {3955#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {3955#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:46:26,313 INFO L273 TraceCheckUtils]: 4: Hoare triple {3955#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {3940#false} is VALID [2019-01-31 14:46:26,314 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:46:26,314 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:46:26,345 INFO L273 TraceCheckUtils]: 4: Hoare triple {3943#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {3940#false} is VALID [2019-01-31 14:46:26,346 INFO L273 TraceCheckUtils]: 3: Hoare triple {3943#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {3943#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:46:26,347 INFO L273 TraceCheckUtils]: 2: Hoare triple {3968#(<= (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {3943#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:46:26,348 INFO L273 TraceCheckUtils]: 1: Hoare triple {3972#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3968#(<= (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:46:26,350 INFO L273 TraceCheckUtils]: 0: Hoare triple {3939#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {3972#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:46:26,351 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:46:26,370 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:46:26,370 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-01-31 14:46:26,370 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:46:26,371 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:46:26,371 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:46:26,371 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:46:26,392 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:46:26,392 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:46:26,392 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:46:26,392 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=36, Invalid=54, Unknown=0, NotChecked=0, Total=90 [2019-01-31 14:46:26,393 INFO L87 Difference]: Start difference. First operand 42 states and 171 transitions. Second operand 8 states. [2019-01-31 14:46:28,387 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:28,387 INFO L93 Difference]: Finished difference Result 84 states and 258 transitions. [2019-01-31 14:46:28,387 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-31 14:46:28,387 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:46:28,387 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:46:28,387 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:46:28,388 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 79 transitions. [2019-01-31 14:46:28,388 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:46:28,388 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 79 transitions. [2019-01-31 14:46:28,388 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 79 transitions. [2019-01-31 14:46:28,509 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 79 edges. 79 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:46:28,510 INFO L225 Difference]: With dead ends: 84 [2019-01-31 14:46:28,511 INFO L226 Difference]: Without dead ends: 78 [2019-01-31 14:46:28,511 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 3 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 23 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=52, Invalid=80, Unknown=0, NotChecked=0, Total=132 [2019-01-31 14:46:28,511 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 78 states. [2019-01-31 14:46:28,902 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 78 to 48. [2019-01-31 14:46:28,903 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:46:28,903 INFO L82 GeneralOperation]: Start isEquivalent. First operand 78 states. Second operand 48 states. [2019-01-31 14:46:28,903 INFO L74 IsIncluded]: Start isIncluded. First operand 78 states. Second operand 48 states. [2019-01-31 14:46:28,903 INFO L87 Difference]: Start difference. First operand 78 states. Second operand 48 states. [2019-01-31 14:46:28,906 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:28,907 INFO L93 Difference]: Finished difference Result 78 states and 249 transitions. [2019-01-31 14:46:28,907 INFO L276 IsEmpty]: Start isEmpty. Operand 78 states and 249 transitions. [2019-01-31 14:46:28,907 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:46:28,907 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:46:28,907 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand 78 states. [2019-01-31 14:46:28,908 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 78 states. [2019-01-31 14:46:28,909 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:28,909 INFO L93 Difference]: Finished difference Result 78 states and 249 transitions. [2019-01-31 14:46:28,909 INFO L276 IsEmpty]: Start isEmpty. Operand 78 states and 249 transitions. [2019-01-31 14:46:28,910 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:46:28,910 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:46:28,910 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:46:28,910 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:46:28,910 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 48 states. [2019-01-31 14:46:28,911 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 48 states to 48 states and 218 transitions. [2019-01-31 14:46:28,912 INFO L78 Accepts]: Start accepts. Automaton has 48 states and 218 transitions. Word has length 5 [2019-01-31 14:46:28,912 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:46:28,912 INFO L480 AbstractCegarLoop]: Abstraction has 48 states and 218 transitions. [2019-01-31 14:46:28,912 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:46:28,912 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 218 transitions. [2019-01-31 14:46:28,912 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:46:28,912 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:46:28,913 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:46:28,913 INFO L423 AbstractCegarLoop]: === Iteration 20 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:46:28,913 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:46:28,913 INFO L82 PathProgramCache]: Analyzing trace with hash 29184942, now seen corresponding path program 1 times [2019-01-31 14:46:28,913 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:46:28,914 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:46:28,914 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:46:28,914 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:46:28,914 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:46:28,920 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:29,131 INFO L273 TraceCheckUtils]: 0: Hoare triple {4336#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {4338#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 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)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:46:29,132 INFO L273 TraceCheckUtils]: 1: Hoare triple {4338#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 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)) (= 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]; {4339#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:46:29,133 INFO L273 TraceCheckUtils]: 2: Hoare triple {4339#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {4340#(and (= (select |#memory_int| ULTIMATE.start_main_p2) 0) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:46:29,134 INFO L273 TraceCheckUtils]: 3: Hoare triple {4340#(and (= (select |#memory_int| ULTIMATE.start_main_p2) 0) (= 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]; {4341#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:46:29,134 INFO L273 TraceCheckUtils]: 4: Hoare triple {4341#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {4337#false} is VALID [2019-01-31 14:46:29,135 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:46:29,135 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:46:29,135 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:46:29,135 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:46:29,135 INFO L207 CegarAbsIntRunner]: [0], [10], [18], [20], [23] [2019-01-31 14:46:29,137 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:46:29,137 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:46:29,147 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:46:29,147 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 2. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-31 14:46:29,147 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:46:29,147 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:46:29,148 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:46:29,148 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 18 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 18 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:46:29,158 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:46:29,158 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:46:29,177 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:29,196 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:29,197 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:46:29,251 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 21 [2019-01-31 14:46:29,257 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 27 [2019-01-31 14:46:29,265 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,266 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,267 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:46:29,415 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,438 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,466 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,467 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:46:29,522 INFO L478 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 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:46:29,525 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:29,547 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:29,564 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:29,579 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:29,590 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:29,616 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,617 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-31 14:46:29,659 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,660 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,661 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-31 14:46:29,933 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,934 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,935 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,936 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,937 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 25 [2019-01-31 14:46:29,939 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:29,949 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:29,959 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:29,987 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 2 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:29,987 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 3 variables, input treesize:52, output treesize:50 [2019-01-31 14:46:29,994 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:29,994 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_97|, ULTIMATE.start_main_p3, |v_#valid_23|]. (let ((.cse0 (store |v_#valid_23| ULTIMATE.start_main_p1 1))) (let ((.cse1 (store .cse0 ULTIMATE.start_main_p2 1))) (and (= 0 (select .cse0 ULTIMATE.start_main_p2)) (= 0 (select .cse1 ULTIMATE.start_main_p3)) (= (select (store .cse1 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4) 0) (= (store (store (store (store (store |v_#memory_int_97| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|)))) [2019-01-31 14:46:29,994 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:46:30,071 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:30,090 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 7 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 2 case distinctions, treesize of input 36 treesize of output 54 [2019-01-31 14:46:30,092 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 2 xjuncts. [2019-01-31 14:46:30,165 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 2 xjuncts. [2019-01-31 14:46:30,166 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:60, output treesize:74 [2019-01-31 14:46:41,597 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:41,597 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_98|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_98| ULTIMATE.start_main_p4))) (and (= 0 (select |v_#memory_int_98| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_98| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_98| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_98| ULTIMATE.start_main_p2)) (= |#memory_int| (store |v_#memory_int_98| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= 0 .cse0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-31 14:46:41,598 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, v_prenex_26]. (let ((.cse3 (select |#memory_int| ULTIMATE.start_main_p5)) (.cse0 (= (select |#memory_int| ULTIMATE.start_main_p1) 0)) (.cse1 (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1))) (.cse2 (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (or (and (not (= v_prenex_26 ULTIMATE.start_main_p2)) .cse0 .cse1 .cse2 (not (= v_prenex_26 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_26) 0) (= 0 (+ .cse3 1))) (and (= 0 .cse3) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) .cse0 .cse1 (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) .cse2 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)))) [2019-01-31 14:46:42,502 WARN L181 SmtUtils]: Spent 381.00 ms on a formula simplification that was a NOOP. DAG size: 42 [2019-01-31 14:46:42,539 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:42,541 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:42,542 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:42,543 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:42,551 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:42,552 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:42,553 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:42,578 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 6 case distinctions, treesize of input 50 treesize of output 80 [2019-01-31 14:46:42,587 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 8 xjuncts. [2019-01-31 14:46:42,784 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:42,785 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:42,786 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:42,787 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:42,788 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:46:42,789 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 45 treesize of output 51 [2019-01-31 14:46:42,835 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:42,973 INFO L267 ElimStorePlain]: Start of recursive call 1: 5 dim-0 vars, 2 dim-1 vars, End of recursive call: 11 dim-0 vars, and 5 xjuncts. [2019-01-31 14:46:42,973 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 7 variables, input treesize:96, output treesize:167 [2019-01-31 14:46:53,930 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:53,930 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_99|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, v_prenex_27, v_prenex_28, v_prenex_26]. (let ((.cse0 (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))) (or (let ((.cse1 (select |v_#memory_int_99| ULTIMATE.start_main_p5))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_99| ULTIMATE.start_main_p2) 0) .cse0 (= 0 (select |v_#memory_int_99| ULTIMATE.start_main_p1)) (= (store |v_#memory_int_99| ULTIMATE.start_main_p5 (+ .cse1 1)) |#memory_int|) (= 0 .cse1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_99| ULTIMATE.start_main_p3) 0) (= 0 (+ (select |v_#memory_int_99| ULTIMATE.start_main_p4) 1)))) (let ((.cse2 (+ (select v_prenex_27 v_prenex_28) 1))) (and (= 0 (select v_prenex_27 ULTIMATE.start_main_p1)) (= 0 (select v_prenex_27 v_prenex_26)) .cse0 (not (= v_prenex_26 ULTIMATE.start_main_p1)) (= (select v_prenex_27 ULTIMATE.start_main_p2) 0) (not (= v_prenex_26 ULTIMATE.start_main_p2)) (= (store v_prenex_27 v_prenex_28 .cse2) |#memory_int|) (= .cse2 0))))) [2019-01-31 14:46:53,930 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_30, v_prenex_29, ULTIMATE.start_main_p5, v_prenex_28, v_prenex_26, v_prenex_34, v_prenex_33, v_prenex_31, v_prenex_32, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse3 (select |#memory_int| ULTIMATE.start_main_p1)) (.cse4 (select |#memory_int| ULTIMATE.start_main_p2))) (let ((.cse1 (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1))) (.cse2 (= 0 .cse4)) (.cse0 (= .cse3 0))) (or (and (not (= v_prenex_28 v_prenex_26)) (= (select |#memory_int| v_prenex_28) 0) (not (= v_prenex_28 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| v_prenex_26)) .cse0 (not (= v_prenex_26 ULTIMATE.start_main_p1)) .cse1 (not (= v_prenex_28 ULTIMATE.start_main_p1)) .cse2 (not (= v_prenex_26 ULTIMATE.start_main_p2))) (and (= .cse3 1) (not (= v_prenex_34 ULTIMATE.start_main_p2)) (= (+ (select |#memory_int| v_prenex_33) 1) 0) .cse2 (= (select |#memory_int| v_prenex_34) 0)) (and (not (= v_prenex_30 ULTIMATE.start_main_p2)) .cse0 (= (+ (select |#memory_int| v_prenex_29) 1) 0) .cse1 (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) .cse2 (not (= v_prenex_30 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_30) 0)) (and .cse0 (= (+ (select |#memory_int| v_prenex_31) 1) 0) .cse1 (= (select |#memory_int| v_prenex_32) 1) .cse2) (and (= 1 .cse4) .cse0 (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))))) [2019-01-31 14:46:54,172 WARN L181 SmtUtils]: Spent 117.00 ms on a formula simplification. DAG size of input: 88 DAG size of output: 69 [2019-01-31 14:46:54,231 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:54,232 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:54,233 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:54,235 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:54,236 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:54,237 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:54,238 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:54,239 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:54,241 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:54,241 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:46:54,244 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 37 treesize of output 86 [2019-01-31 14:46:54,247 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:54,359 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:54,360 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 55 treesize of output 53 [2019-01-31 14:46:54,364 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:54,449 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:54,450 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:54,451 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:54,453 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:54,454 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:54,455 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:54,456 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:54,465 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:54,466 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:54,466 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:46:54,467 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 37 treesize of output 82 [2019-01-31 14:46:54,471 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:54,557 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:54,559 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:54,560 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:54,561 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:54,562 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:54,564 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:54,565 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:54,566 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:54,567 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:54,568 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:54,569 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:46:54,570 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 37 treesize of output 73 [2019-01-31 14:46:54,573 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:54,657 INFO L267 ElimStorePlain]: Start of recursive call 1: 12 dim-0 vars, 4 dim-1 vars, End of recursive call: 12 dim-0 vars, and 4 xjuncts. [2019-01-31 14:46:54,658 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 16 variables, input treesize:167, output treesize:121 [2019-01-31 14:47:06,869 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:06,870 WARN L398 uantifierElimination]: Input elimination task: ∃ [v_prenex_40, v_prenex_39, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, v_prenex_35, v_prenex_36, v_prenex_33, v_prenex_34, v_prenex_37, v_prenex_38, v_prenex_28, v_prenex_26, |v_#memory_int_100|, ULTIMATE.start_main_p2, v_prenex_32, v_prenex_31]. (or (let ((.cse0 (select v_prenex_40 v_prenex_39))) (and (= .cse0 1) (= 0 (+ (select v_prenex_40 ULTIMATE.start_main_p4) 1)) (= (select v_prenex_40 ULTIMATE.start_main_p3) 0) (= (select v_prenex_40 ULTIMATE.start_main_p1) 0) (= |#memory_int| (store v_prenex_40 v_prenex_39 (+ .cse0 (- 1)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) (let ((.cse1 (select v_prenex_35 v_prenex_36))) (and (= 0 (+ (select v_prenex_35 v_prenex_33) 1)) (= (select v_prenex_35 ULTIMATE.start_main_p1) 1) (= |#memory_int| (store v_prenex_35 v_prenex_36 (+ .cse1 (- 1)))) (not (= v_prenex_34 v_prenex_36)) (= .cse1 0) (= (select v_prenex_35 v_prenex_34) 0))) (let ((.cse2 (select v_prenex_37 v_prenex_38))) (and (= (select v_prenex_37 v_prenex_28) 0) (not (= v_prenex_28 v_prenex_26)) (not (= v_prenex_38 ULTIMATE.start_main_p1)) (not (= v_prenex_28 v_prenex_38)) (= (select v_prenex_37 ULTIMATE.start_main_p1) 0) (not (= v_prenex_26 ULTIMATE.start_main_p1)) (not (= v_prenex_28 ULTIMATE.start_main_p1)) (= (select v_prenex_37 v_prenex_26) 0) (= .cse2 0) (= |#memory_int| (store v_prenex_37 v_prenex_38 (+ .cse2 (- 1)))) (not (= v_prenex_26 v_prenex_38)))) (let ((.cse3 (select |v_#memory_int_100| ULTIMATE.start_main_p2))) (and (= (select |v_#memory_int_100| v_prenex_32) 1) (= .cse3 0) (= |#memory_int| (store |v_#memory_int_100| ULTIMATE.start_main_p2 (+ .cse3 (- 1)))) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (+ (select |v_#memory_int_100| v_prenex_31) 1) 0) (= (select |v_#memory_int_100| ULTIMATE.start_main_p1) 0)))) [2019-01-31 14:47:06,870 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_36, v_prenex_33, v_prenex_34, v_prenex_31, ULTIMATE.start_main_p2, v_prenex_32, ULTIMATE.start_main_p4, v_prenex_39, ULTIMATE.start_main_p3, v_prenex_28, v_prenex_26, v_prenex_38]. (let ((.cse0 (select |#memory_int| ULTIMATE.start_main_p1))) (let ((.cse1 (= .cse0 0))) (or (and (not (= v_prenex_36 v_prenex_33)) (= .cse0 1) (= (- 1) (select |#memory_int| v_prenex_36)) (= 0 (select |#memory_int| v_prenex_34)) (= (- 1) (select |#memory_int| v_prenex_33))) (and (not (= v_prenex_31 ULTIMATE.start_main_p2)) (= (+ (select |#memory_int| v_prenex_31) 1) 0) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= 1 (select |#memory_int| v_prenex_32)) .cse1) (and .cse1 (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= v_prenex_39 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= 0 (select |#memory_int| v_prenex_39)) (not (= v_prenex_39 ULTIMATE.start_main_p1))) (and (not (= v_prenex_28 v_prenex_26)) (= (select |#memory_int| v_prenex_28) 0) (= 0 (select |#memory_int| v_prenex_26)) .cse1 (not (= v_prenex_26 ULTIMATE.start_main_p1)) (not (= v_prenex_28 ULTIMATE.start_main_p1)) (= (- 1) (select |#memory_int| v_prenex_38)))))) [2019-01-31 14:47:06,984 INFO L273 TraceCheckUtils]: 0: Hoare triple {4336#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {4345#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:47:06,986 INFO L273 TraceCheckUtils]: 1: Hoare triple {4345#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {4349#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((v_prenex_26 Int)) (and (not (= v_prenex_26 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_26) 0) (not (= v_prenex_26 ULTIMATE.start_main_p2)))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1))) (and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2))))} is VALID [2019-01-31 14:47:06,994 INFO L273 TraceCheckUtils]: 2: Hoare triple {4349#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((v_prenex_26 Int)) (and (not (= v_prenex_26 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_26) 0) (not (= v_prenex_26 ULTIMATE.start_main_p2)))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1))) (and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {4353#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((v_prenex_31 Int)) (= (+ (select |#memory_int| v_prenex_31) 1) 0)) (exists ((v_prenex_32 Int)) (= (select |#memory_int| v_prenex_32) 1))) (and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= 1 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (and (exists ((v_prenex_26 Int) (v_prenex_28 Int)) (and (not (= v_prenex_28 v_prenex_26)) (= (select |#memory_int| v_prenex_28) 0) (not (= v_prenex_28 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| v_prenex_26)) (not (= v_prenex_26 ULTIMATE.start_main_p1)) (not (= v_prenex_28 ULTIMATE.start_main_p1)) (not (= v_prenex_26 ULTIMATE.start_main_p2)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_34 Int)) (and (= (select |#memory_int| v_prenex_34) 0) (not (= v_prenex_34 ULTIMATE.start_main_p2)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((v_prenex_33 Int)) (= (+ (select |#memory_int| v_prenex_33) 1) 0))))} is VALID [2019-01-31 14:47:07,000 INFO L273 TraceCheckUtils]: 3: Hoare triple {4353#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((v_prenex_31 Int)) (= (+ (select |#memory_int| v_prenex_31) 1) 0)) (exists ((v_prenex_32 Int)) (= (select |#memory_int| v_prenex_32) 1))) (and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= 1 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (and (exists ((v_prenex_26 Int) (v_prenex_28 Int)) (and (not (= v_prenex_28 v_prenex_26)) (= (select |#memory_int| v_prenex_28) 0) (not (= v_prenex_28 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| v_prenex_26)) (not (= v_prenex_26 ULTIMATE.start_main_p1)) (not (= v_prenex_28 ULTIMATE.start_main_p1)) (not (= v_prenex_26 ULTIMATE.start_main_p2)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_34 Int)) (and (= (select |#memory_int| v_prenex_34) 0) (not (= v_prenex_34 ULTIMATE.start_main_p2)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((v_prenex_33 Int)) (= (+ (select |#memory_int| v_prenex_33) 1) 0))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4357#(or (and (exists ((v_prenex_31 Int) (ULTIMATE.start_main_p2 Int)) (and (not (= v_prenex_31 ULTIMATE.start_main_p2)) (= (+ (select |#memory_int| v_prenex_31) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_32 Int)) (= 1 (select |#memory_int| v_prenex_32)))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_33 Int) (v_prenex_36 Int)) (and (not (= v_prenex_36 v_prenex_33)) (= 0 (+ (select |#memory_int| v_prenex_33) 1)) (= 0 (+ (select |#memory_int| v_prenex_36) 1)))) (exists ((v_prenex_34 Int)) (= 0 (select |#memory_int| v_prenex_34)))) (and (exists ((v_prenex_38 Int)) (= 0 (+ (select |#memory_int| v_prenex_38) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_26 Int) (v_prenex_28 Int)) (and (not (= v_prenex_28 v_prenex_26)) (= (select |#memory_int| v_prenex_28) 0) (= 0 (select |#memory_int| v_prenex_26)) (not (= v_prenex_26 ULTIMATE.start_main_p1)) (not (= v_prenex_28 ULTIMATE.start_main_p1))))))} is VALID [2019-01-31 14:47:07,001 INFO L273 TraceCheckUtils]: 4: Hoare triple {4357#(or (and (exists ((v_prenex_31 Int) (ULTIMATE.start_main_p2 Int)) (and (not (= v_prenex_31 ULTIMATE.start_main_p2)) (= (+ (select |#memory_int| v_prenex_31) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_32 Int)) (= 1 (select |#memory_int| v_prenex_32)))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_33 Int) (v_prenex_36 Int)) (and (not (= v_prenex_36 v_prenex_33)) (= 0 (+ (select |#memory_int| v_prenex_33) 1)) (= 0 (+ (select |#memory_int| v_prenex_36) 1)))) (exists ((v_prenex_34 Int)) (= 0 (select |#memory_int| v_prenex_34)))) (and (exists ((v_prenex_38 Int)) (= 0 (+ (select |#memory_int| v_prenex_38) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_26 Int) (v_prenex_28 Int)) (and (not (= v_prenex_28 v_prenex_26)) (= (select |#memory_int| v_prenex_28) 0) (= 0 (select |#memory_int| v_prenex_26)) (not (= v_prenex_26 ULTIMATE.start_main_p1)) (not (= v_prenex_28 ULTIMATE.start_main_p1))))))} assume !(#memory_int[main_p1] >= 0); {4337#false} is VALID [2019-01-31 14:47:07,002 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:07,002 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:47:07,091 INFO L273 TraceCheckUtils]: 4: Hoare triple {4361#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {4337#false} is VALID [2019-01-31 14:47:07,092 INFO L273 TraceCheckUtils]: 3: Hoare triple {4365#(<= 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]; {4361#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:47:07,093 INFO L273 TraceCheckUtils]: 2: Hoare triple {4369#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {4365#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:47:07,094 INFO L273 TraceCheckUtils]: 1: Hoare triple {4373#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 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_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {4369#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:47:07,096 INFO L273 TraceCheckUtils]: 0: Hoare triple {4336#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {4373#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 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_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:47:07,097 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:07,115 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:47:07,116 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-31 14:47:07,116 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:47:07,116 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-31 14:47:07,116 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:47:07,116 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:47:07,141 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:47:07,141 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:47:07,141 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:47:07,141 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=62, Invalid=120, Unknown=0, NotChecked=0, Total=182 [2019-01-31 14:47:07,142 INFO L87 Difference]: Start difference. First operand 48 states and 218 transitions. Second operand 10 states. [2019-01-31 14:47:09,704 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:09,704 INFO L93 Difference]: Finished difference Result 109 states and 322 transitions. [2019-01-31 14:47:09,705 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2019-01-31 14:47:09,705 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-31 14:47:09,705 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:47:09,705 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:47:09,705 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 103 transitions. [2019-01-31 14:47:09,706 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:47:09,706 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 103 transitions. [2019-01-31 14:47:09,706 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states and 103 transitions. [2019-01-31 14:47:09,903 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 103 edges. 103 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:47:09,905 INFO L225 Difference]: With dead ends: 109 [2019-01-31 14:47:09,905 INFO L226 Difference]: Without dead ends: 107 [2019-01-31 14:47:09,906 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 60 ImplicationChecksByTransitivity, 1.9s TimeCoverageRelationStatistics Valid=115, Invalid=227, Unknown=0, NotChecked=0, Total=342 [2019-01-31 14:47:09,906 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 107 states. [2019-01-31 14:47:10,327 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 107 to 51. [2019-01-31 14:47:10,328 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:47:10,328 INFO L82 GeneralOperation]: Start isEquivalent. First operand 107 states. Second operand 51 states. [2019-01-31 14:47:10,328 INFO L74 IsIncluded]: Start isIncluded. First operand 107 states. Second operand 51 states. [2019-01-31 14:47:10,328 INFO L87 Difference]: Start difference. First operand 107 states. Second operand 51 states. [2019-01-31 14:47:10,332 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:10,332 INFO L93 Difference]: Finished difference Result 107 states and 317 transitions. [2019-01-31 14:47:10,332 INFO L276 IsEmpty]: Start isEmpty. Operand 107 states and 317 transitions. [2019-01-31 14:47:10,333 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:47:10,333 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:47:10,333 INFO L74 IsIncluded]: Start isIncluded. First operand 51 states. Second operand 107 states. [2019-01-31 14:47:10,333 INFO L87 Difference]: Start difference. First operand 51 states. Second operand 107 states. [2019-01-31 14:47:10,335 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:10,335 INFO L93 Difference]: Finished difference Result 107 states and 317 transitions. [2019-01-31 14:47:10,336 INFO L276 IsEmpty]: Start isEmpty. Operand 107 states and 317 transitions. [2019-01-31 14:47:10,336 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:47:10,336 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:47:10,336 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:47:10,336 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:47:10,337 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 51 states. [2019-01-31 14:47:10,338 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 51 states to 51 states and 236 transitions. [2019-01-31 14:47:10,338 INFO L78 Accepts]: Start accepts. Automaton has 51 states and 236 transitions. Word has length 5 [2019-01-31 14:47:10,338 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:47:10,338 INFO L480 AbstractCegarLoop]: Abstraction has 51 states and 236 transitions. [2019-01-31 14:47:10,339 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:47:10,339 INFO L276 IsEmpty]: Start isEmpty. Operand 51 states and 236 transitions. [2019-01-31 14:47:10,339 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:47:10,339 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:47:10,339 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:47:10,339 INFO L423 AbstractCegarLoop]: === Iteration 21 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:47:10,339 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:47:10,339 INFO L82 PathProgramCache]: Analyzing trace with hash 29171924, now seen corresponding path program 1 times [2019-01-31 14:47:10,340 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:47:10,340 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:47:10,340 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:47:10,340 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:47:10,340 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:47:10,344 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:10,446 INFO L273 TraceCheckUtils]: 0: Hoare triple {4840#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {4842#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:47:10,447 INFO L273 TraceCheckUtils]: 1: Hoare triple {4842#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {4843#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:47:10,448 INFO L273 TraceCheckUtils]: 2: Hoare triple {4843#(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]; {4843#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:47:10,448 INFO L273 TraceCheckUtils]: 3: Hoare triple {4843#(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)))} assume #memory_int[main_p1] >= 0; {4844#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:47:10,448 INFO L273 TraceCheckUtils]: 4: Hoare triple {4844#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {4841#false} is VALID [2019-01-31 14:47:10,449 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:47:10,449 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:47:10,449 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:47:10,449 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:47:10,449 INFO L207 CegarAbsIntRunner]: [0], [6], [18], [24], [25] [2019-01-31 14:47:10,450 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:47:10,450 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:47:10,466 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:47:10,466 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 2. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:47:10,467 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:47:10,467 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:47:10,467 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:47:10,467 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 19 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 19 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:47:10,475 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:47:10,475 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:47:10,479 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:10,482 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:10,482 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:47:10,524 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 21 [2019-01-31 14:47:10,531 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 27 [2019-01-31 14:47:10,538 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:10,540 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:10,540 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:47:10,551 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:10,553 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:10,554 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:10,555 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:47:10,574 INFO L478 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 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:47:10,577 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:10,595 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:10,613 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:10,627 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:10,639 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:10,665 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:10,666 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-31 14:47:10,710 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:10,711 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:10,712 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-31 14:47:10,767 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:10,768 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:10,770 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:10,771 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:10,771 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 25 [2019-01-31 14:47:10,773 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:10,785 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:10,795 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:10,823 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:10,823 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:52, output treesize:50 [2019-01-31 14:47:10,852 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:10,853 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_104|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, |v_#valid_24|]. (let ((.cse0 (store |v_#valid_24| ULTIMATE.start_main_p1 1))) (let ((.cse1 (store .cse0 ULTIMATE.start_main_p2 1))) (and (= 0 (select .cse0 ULTIMATE.start_main_p2)) (= |#memory_int| (store (store (store (store (store |v_#memory_int_104| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0)) (= 0 (select (store .cse1 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4)) (= (select .cse1 ULTIMATE.start_main_p3) 0)))) [2019-01-31 14:47:10,853 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:47:10,976 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:10,977 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-31 14:47:10,980 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:11,000 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:11,000 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:55, output treesize:33 [2019-01-31 14:47:22,249 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:22,249 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_105|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_105| ULTIMATE.start_main_p4))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= |#memory_int| (store |v_#memory_int_105| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_105| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 .cse0) (= (select |v_#memory_int_105| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_105| ULTIMATE.start_main_p2) 0))) [2019-01-31 14:47:22,249 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-31 14:47:22,432 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,434 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,435 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,436 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,437 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,438 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,439 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-31 14:47:22,442 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:22,465 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:22,466 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:45, output treesize:27 [2019-01-31 14:47:22,559 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:22,560 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_106|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_106| ULTIMATE.start_main_p1))) (and (= (store |v_#memory_int_106| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_106| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_106| ULTIMATE.start_main_p3)) (= 0 .cse0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (+ (select |v_#memory_int_106| ULTIMATE.start_main_p4) 1) 0))) [2019-01-31 14:47:22,560 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-31 14:47:22,596 INFO L273 TraceCheckUtils]: 0: Hoare triple {4840#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {4848#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:47:22,599 INFO L273 TraceCheckUtils]: 1: Hoare triple {4848#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {4852#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:47:22,601 INFO L273 TraceCheckUtils]: 2: Hoare triple {4852#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {4856#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} is VALID [2019-01-31 14:47:22,602 INFO L273 TraceCheckUtils]: 3: Hoare triple {4856#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} assume #memory_int[main_p1] >= 0; {4856#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} is VALID [2019-01-31 14:47:22,603 INFO L273 TraceCheckUtils]: 4: Hoare triple {4856#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} assume !(#memory_int[main_p2] <= 0); {4841#false} is VALID [2019-01-31 14:47:22,604 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:22,604 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:47:22,647 INFO L273 TraceCheckUtils]: 4: Hoare triple {4863#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {4841#false} is VALID [2019-01-31 14:47:22,648 INFO L273 TraceCheckUtils]: 3: Hoare triple {4863#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {4863#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:47:22,649 INFO L273 TraceCheckUtils]: 2: Hoare triple {4870#(<= (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]; {4863#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:47:22,651 INFO L273 TraceCheckUtils]: 1: Hoare triple {4874#(<= (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]; {4870#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:47:22,653 INFO L273 TraceCheckUtils]: 0: Hoare triple {4840#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {4874#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:47:22,654 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:22,674 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:47:22,674 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:47:22,674 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:47:22,674 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:47:22,675 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:47:22,675 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:47:22,689 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:47:22,689 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:47:22,690 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:47:22,690 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=40, Invalid=70, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:47:22,690 INFO L87 Difference]: Start difference. First operand 51 states and 236 transitions. Second operand 8 states. [2019-01-31 14:47:24,108 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:24,109 INFO L93 Difference]: Finished difference Result 77 states and 292 transitions. [2019-01-31 14:47:24,109 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:47:24,109 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:47:24,109 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:47:24,109 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:47:24,110 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 52 transitions. [2019-01-31 14:47:24,110 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:47:24,110 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 52 transitions. [2019-01-31 14:47:24,110 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 52 transitions. [2019-01-31 14:47:24,189 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 52 edges. 52 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:47:24,190 INFO L225 Difference]: With dead ends: 77 [2019-01-31 14:47:24,190 INFO L226 Difference]: Without dead ends: 76 [2019-01-31 14:47:24,191 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 2 SyntacticMatches, 1 SemanticMatches, 12 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 29 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=69, Invalid=113, Unknown=0, NotChecked=0, Total=182 [2019-01-31 14:47:24,191 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 76 states. [2019-01-31 14:47:24,681 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 76 to 55. [2019-01-31 14:47:24,681 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:47:24,681 INFO L82 GeneralOperation]: Start isEquivalent. First operand 76 states. Second operand 55 states. [2019-01-31 14:47:24,682 INFO L74 IsIncluded]: Start isIncluded. First operand 76 states. Second operand 55 states. [2019-01-31 14:47:24,682 INFO L87 Difference]: Start difference. First operand 76 states. Second operand 55 states. [2019-01-31 14:47:24,684 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:24,684 INFO L93 Difference]: Finished difference Result 76 states and 290 transitions. [2019-01-31 14:47:24,684 INFO L276 IsEmpty]: Start isEmpty. Operand 76 states and 290 transitions. [2019-01-31 14:47:24,684 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:47:24,684 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:47:24,684 INFO L74 IsIncluded]: Start isIncluded. First operand 55 states. Second operand 76 states. [2019-01-31 14:47:24,685 INFO L87 Difference]: Start difference. First operand 55 states. Second operand 76 states. [2019-01-31 14:47:24,686 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:24,686 INFO L93 Difference]: Finished difference Result 76 states and 290 transitions. [2019-01-31 14:47:24,686 INFO L276 IsEmpty]: Start isEmpty. Operand 76 states and 290 transitions. [2019-01-31 14:47:24,687 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:47:24,687 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:47:24,687 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:47:24,687 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:47:24,687 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 55 states. [2019-01-31 14:47:24,688 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 55 states to 55 states and 261 transitions. [2019-01-31 14:47:24,688 INFO L78 Accepts]: Start accepts. Automaton has 55 states and 261 transitions. Word has length 5 [2019-01-31 14:47:24,688 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:47:24,688 INFO L480 AbstractCegarLoop]: Abstraction has 55 states and 261 transitions. [2019-01-31 14:47:24,688 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:47:24,689 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 261 transitions. [2019-01-31 14:47:24,689 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:47:24,689 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:47:24,689 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:47:24,689 INFO L423 AbstractCegarLoop]: === Iteration 22 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:47:24,689 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:47:24,689 INFO L82 PathProgramCache]: Analyzing trace with hash 29175642, now seen corresponding path program 2 times [2019-01-31 14:47:24,690 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:47:24,690 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:47:24,690 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:47:24,690 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:47:24,690 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:47:24,697 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:24,890 INFO L273 TraceCheckUtils]: 0: Hoare triple {5251#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {5253#(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_p5)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:47:24,892 INFO L273 TraceCheckUtils]: 1: Hoare triple {5253#(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_p5)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p5)) (= 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]; {5254#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:47:24,893 INFO L273 TraceCheckUtils]: 2: Hoare triple {5254#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p5)) (= 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]; {5255#(and (or (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1))) (= (select |#memory_int| ULTIMATE.start_main_p5) 0))} is VALID [2019-01-31 14:47:24,895 INFO L273 TraceCheckUtils]: 3: Hoare triple {5255#(and (or (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1))) (= (select |#memory_int| ULTIMATE.start_main_p5) 0))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {5256#(or (<= 1 (select |#memory_int| ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-01-31 14:47:24,896 INFO L273 TraceCheckUtils]: 4: Hoare triple {5256#(or (<= 1 (select |#memory_int| ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} assume !(#memory_int[main_p1] >= 0); {5252#false} is VALID [2019-01-31 14:47:24,897 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:24,897 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:47:24,897 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:47:24,897 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-31 14:47:24,897 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-31 14:47:24,898 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:47:24,898 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 20 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 20 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:47:24,907 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-31 14:47:24,907 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-31 14:47:24,915 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-31 14:47:24,915 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-31 14:47:24,920 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:24,921 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:47:24,963 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:24,964 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 48 treesize of output 54 [2019-01-31 14:47:25,014 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:25,015 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:25,016 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 41 treesize of output 53 [2019-01-31 14:47:25,076 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:25,077 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:25,078 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:25,080 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:25,081 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 61 [2019-01-31 14:47:25,154 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:25,156 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:25,157 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:25,159 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:25,160 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:25,161 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:25,162 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 11 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 41 [2019-01-31 14:47:25,165 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:25,185 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:25,203 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:25,223 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:25,252 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 4 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 21 [2019-01-31 14:47:25,262 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 7 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 27 [2019-01-31 14:47:25,279 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 9 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:47:25,296 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 10 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:47:25,322 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:47:25,326 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:25,352 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:25,368 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:25,381 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:25,393 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:25,430 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 2 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:25,430 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 3 variables, input treesize:69, output treesize:66 [2019-01-31 14:47:25,438 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:25,439 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_109|, ULTIMATE.start_main_p3, |v_#valid_25|]. (let ((.cse1 (store |v_#valid_25| ULTIMATE.start_main_p1 1))) (let ((.cse2 (store .cse1 ULTIMATE.start_main_p2 1))) (let ((.cse0 (store .cse2 ULTIMATE.start_main_p3 1))) (and (= (store (store (store (store (store |v_#memory_int_109| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (= (select (store .cse0 ULTIMATE.start_main_p4 1) ULTIMATE.start_main_p5) 0) (= 0 (select .cse0 ULTIMATE.start_main_p4)) (= (select .cse1 ULTIMATE.start_main_p2) 0) (= 0 (select .cse2 ULTIMATE.start_main_p3)))))) [2019-01-31 14:47:25,439 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:47:25,530 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:25,531 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 11 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 66 [2019-01-31 14:47:25,534 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:25,571 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:25,571 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:76, output treesize:50 [2019-01-31 14:47:25,710 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:25,710 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_110|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_110| ULTIMATE.start_main_p4))) (and (= .cse0 0) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_110| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_110| ULTIMATE.start_main_p5) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= |#memory_int| (store |v_#memory_int_110| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= (select |v_#memory_int_110| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_110| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) [2019-01-31 14:47:25,710 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-31 14:47:25,793 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:25,794 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:25,794 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:25,795 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:25,797 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:25,797 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:47:25,798 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 11 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 81 [2019-01-31 14:47:25,802 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:25,840 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:25,841 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:62, output treesize:42 [2019-01-31 14:47:33,505 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:33,506 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_111|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_111| ULTIMATE.start_main_p2))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_111| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_111| ULTIMATE.start_main_p5) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= |#memory_int| (store |v_#memory_int_111| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= (select |v_#memory_int_111| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 .cse0) (= (+ (select |v_#memory_int_111| ULTIMATE.start_main_p4) 1) 0))) [2019-01-31 14:47:33,506 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-31 14:47:33,669 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:33,670 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:33,671 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:33,672 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:33,673 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:33,674 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:33,675 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:33,677 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:33,678 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:33,679 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 40 treesize of output 82 [2019-01-31 14:47:33,682 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:33,716 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:33,716 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:56, output treesize:38 [2019-01-31 14:47:38,703 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:38,703 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_112|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_112| ULTIMATE.start_main_p5))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= (+ (select |v_#memory_int_112| ULTIMATE.start_main_p2) 1) 0) (= 0 (select |v_#memory_int_112| ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 0 (+ (select |v_#memory_int_112| ULTIMATE.start_main_p4) 1)) (= (store |v_#memory_int_112| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (= .cse0 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_112| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) [2019-01-31 14:47:38,703 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-31 14:47:38,756 INFO L273 TraceCheckUtils]: 0: Hoare triple {5251#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {5260#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:47:38,759 INFO L273 TraceCheckUtils]: 1: Hoare triple {5260#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {5264#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:47:38,762 INFO L273 TraceCheckUtils]: 2: Hoare triple {5264#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {5268#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-01-31 14:47:38,765 INFO L273 TraceCheckUtils]: 3: Hoare triple {5268#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {5272#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-31 14:47:38,767 INFO L273 TraceCheckUtils]: 4: Hoare triple {5272#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p1] >= 0); {5252#false} is VALID [2019-01-31 14:47:38,768 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:38,768 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:47:38,864 INFO L273 TraceCheckUtils]: 4: Hoare triple {5256#(or (<= 1 (select |#memory_int| ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} assume !(#memory_int[main_p1] >= 0); {5252#false} is VALID [2019-01-31 14:47:38,865 INFO L273 TraceCheckUtils]: 3: Hoare triple {5279#(or (= (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 0) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {5256#(or (<= 1 (select |#memory_int| ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-01-31 14:47:38,867 INFO L273 TraceCheckUtils]: 2: Hoare triple {5283#(or (= (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 0) (<= 1 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {5279#(or (= (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 0) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:47:38,870 INFO L273 TraceCheckUtils]: 1: Hoare triple {5287#(or (= (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_p5 (+ (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_p5) 1)) ULTIMATE.start_main_p1) 0) (<= 1 (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_p5 (+ (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_p5) 1)) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {5283#(or (= (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 0) (<= 1 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:47:38,872 INFO L273 TraceCheckUtils]: 0: Hoare triple {5251#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {5287#(or (= (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_p5 (+ (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_p5) 1)) ULTIMATE.start_main_p1) 0) (<= 1 (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_p5 (+ (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_p5) 1)) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:47:38,872 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:38,891 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:47:38,891 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-31 14:47:38,892 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:47:38,892 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-31 14:47:38,892 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:47:38,892 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:47:38,909 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:47:38,909 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:47:38,910 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:47:38,910 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=56, Invalid=100, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:47:38,910 INFO L87 Difference]: Start difference. First operand 55 states and 261 transitions. Second operand 10 states. [2019-01-31 14:47:41,053 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:41,054 INFO L93 Difference]: Finished difference Result 88 states and 340 transitions. [2019-01-31 14:47:41,054 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-31 14:47:41,054 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-31 14:47:41,054 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:47:41,054 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:47:41,055 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 69 transitions. [2019-01-31 14:47:41,055 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:47:41,055 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 69 transitions. [2019-01-31 14:47:41,055 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 69 transitions. [2019-01-31 14:47:41,174 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 69 edges. 69 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:47:41,176 INFO L225 Difference]: With dead ends: 88 [2019-01-31 14:47:41,176 INFO L226 Difference]: Without dead ends: 83 [2019-01-31 14:47:41,177 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 0 SyntacticMatches, 1 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 57 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=76, Invalid=134, Unknown=0, NotChecked=0, Total=210 [2019-01-31 14:47:41,177 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 83 states. [2019-01-31 14:47:41,753 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 83 to 61. [2019-01-31 14:47:41,754 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:47:41,754 INFO L82 GeneralOperation]: Start isEquivalent. First operand 83 states. Second operand 61 states. [2019-01-31 14:47:41,754 INFO L74 IsIncluded]: Start isIncluded. First operand 83 states. Second operand 61 states. [2019-01-31 14:47:41,754 INFO L87 Difference]: Start difference. First operand 83 states. Second operand 61 states. [2019-01-31 14:47:41,757 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:41,757 INFO L93 Difference]: Finished difference Result 83 states and 331 transitions. [2019-01-31 14:47:41,757 INFO L276 IsEmpty]: Start isEmpty. Operand 83 states and 331 transitions. [2019-01-31 14:47:41,758 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:47:41,758 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:47:41,758 INFO L74 IsIncluded]: Start isIncluded. First operand 61 states. Second operand 83 states. [2019-01-31 14:47:41,758 INFO L87 Difference]: Start difference. First operand 61 states. Second operand 83 states. [2019-01-31 14:47:41,760 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:41,760 INFO L93 Difference]: Finished difference Result 83 states and 331 transitions. [2019-01-31 14:47:41,760 INFO L276 IsEmpty]: Start isEmpty. Operand 83 states and 331 transitions. [2019-01-31 14:47:41,761 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:47:41,761 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:47:41,761 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:47:41,761 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:47:41,761 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 61 states. [2019-01-31 14:47:41,763 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 61 states to 61 states and 273 transitions. [2019-01-31 14:47:41,763 INFO L78 Accepts]: Start accepts. Automaton has 61 states and 273 transitions. Word has length 5 [2019-01-31 14:47:41,763 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:47:41,763 INFO L480 AbstractCegarLoop]: Abstraction has 61 states and 273 transitions. [2019-01-31 14:47:41,763 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:47:41,763 INFO L276 IsEmpty]: Start isEmpty. Operand 61 states and 273 transitions. [2019-01-31 14:47:41,764 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:47:41,764 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:47:41,764 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:47:41,764 INFO L423 AbstractCegarLoop]: === Iteration 23 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:47:41,764 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:47:41,765 INFO L82 PathProgramCache]: Analyzing trace with hash 29179612, now seen corresponding path program 1 times [2019-01-31 14:47:41,765 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:47:41,766 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:47:41,766 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-31 14:47:41,766 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:47:41,766 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:47:41,783 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:42,088 INFO L273 TraceCheckUtils]: 0: Hoare triple {5701#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {5703#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:47:42,089 INFO L273 TraceCheckUtils]: 1: Hoare triple {5703#(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]; {5704#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:47:42,090 INFO L273 TraceCheckUtils]: 2: Hoare triple {5704#(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]; {5705#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:47:42,091 INFO L273 TraceCheckUtils]: 3: Hoare triple {5705#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {5705#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:47:42,092 INFO L273 TraceCheckUtils]: 4: Hoare triple {5705#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {5702#false} is VALID [2019-01-31 14:47:42,092 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:42,092 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:47:42,093 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:47:42,093 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:47:42,093 INFO L207 CegarAbsIntRunner]: [0], [14], [18], [24], [25] [2019-01-31 14:47:42,096 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:47:42,096 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:47:42,118 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:47:42,119 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 2. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:47:42,119 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:47:42,119 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:47:42,119 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:47:42,119 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 21 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 21 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:47:42,128 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:47:42,128 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:47:42,133 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:42,140 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:42,141 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:47:42,153 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 21 [2019-01-31 14:47:42,166 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:47:42,178 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:42,179 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:42,180 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 33 [2019-01-31 14:47:42,191 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:42,192 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:42,193 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:42,194 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 5 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 47 [2019-01-31 14:47:42,240 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 5 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 46 [2019-01-31 14:47:42,242 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:42,259 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:42,274 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:42,286 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:42,299 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:42,319 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 25 [2019-01-31 14:47:42,341 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:42,343 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:42,344 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 38 [2019-01-31 14:47:42,386 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:42,388 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:42,390 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:42,391 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:42,392 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 21 [2019-01-31 14:47:42,394 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:42,404 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:42,414 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:42,436 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:42,436 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:44, output treesize:46 [2019-01-31 14:47:42,444 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:42,445 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_116|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p5, |v_#valid_26|]. (let ((.cse0 (store (store |v_#valid_26| ULTIMATE.start_main_p1 1) ULTIMATE.start_main_p2 1))) (and (= (store (store (store (store (store |v_#memory_int_116| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (= (select .cse0 ULTIMATE.start_main_p3) 0) (= (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4) 0))) [2019-01-31 14:47:42,445 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5, ULTIMATE.start_main_p1]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:47:42,505 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:42,506 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 28 [2019-01-31 14:47:42,543 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:42,628 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:42,629 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:38, output treesize:20 [2019-01-31 14:47:52,697 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:52,697 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_117|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_117| ULTIMATE.start_main_p4))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 .cse0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_117| ULTIMATE.start_main_p3)) (= 0 (select |v_#memory_int_117| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (store |v_#memory_int_117| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|))) [2019-01-31 14:47:52,697 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-31 14:47:52,737 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:52,738 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:52,739 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:52,740 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:52,741 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:52,742 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 50 [2019-01-31 14:47:52,745 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:52,760 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:52,760 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:32, output treesize:18 [2019-01-31 14:47:52,782 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:52,782 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_118|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_118| ULTIMATE.start_main_p3))) (and (= 0 .cse0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= |#memory_int| (store |v_#memory_int_118| ULTIMATE.start_main_p3 (+ .cse0 1))) (= 0 (select |v_#memory_int_118| ULTIMATE.start_main_p2)) (= 0 (+ (select |v_#memory_int_118| ULTIMATE.start_main_p4) 1)))) [2019-01-31 14:47:52,782 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2))) [2019-01-31 14:47:52,806 INFO L273 TraceCheckUtils]: 0: Hoare triple {5701#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {5709#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:47:52,807 INFO L273 TraceCheckUtils]: 1: Hoare triple {5709#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {5713#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (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))} is VALID [2019-01-31 14:47:52,810 INFO L273 TraceCheckUtils]: 2: Hoare triple {5713#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (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))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {5717#(and (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:47:52,811 INFO L273 TraceCheckUtils]: 3: Hoare triple {5717#(and (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {5717#(and (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:47:52,812 INFO L273 TraceCheckUtils]: 4: Hoare triple {5717#(and (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {5702#false} is VALID [2019-01-31 14:47:52,812 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:52,812 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:47:52,857 INFO L273 TraceCheckUtils]: 4: Hoare triple {5724#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {5702#false} is VALID [2019-01-31 14:47:52,859 INFO L273 TraceCheckUtils]: 3: Hoare triple {5724#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {5724#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:47:52,862 INFO L273 TraceCheckUtils]: 2: Hoare triple {5731#(<= (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]; {5724#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:47:52,863 INFO L273 TraceCheckUtils]: 1: Hoare triple {5735#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {5731#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:47:52,865 INFO L273 TraceCheckUtils]: 0: Hoare triple {5701#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {5735#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:47:52,865 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:52,884 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:47:52,885 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:47:52,885 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:47:52,885 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:47:52,885 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:47:52,885 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:47:52,898 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:47:52,899 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:47:52,899 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:47:52,899 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:47:52,899 INFO L87 Difference]: Start difference. First operand 61 states and 273 transitions. Second operand 8 states. [2019-01-31 14:47:53,950 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:53,950 INFO L93 Difference]: Finished difference Result 81 states and 298 transitions. [2019-01-31 14:47:53,950 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:47:53,951 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:47:53,951 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:47:53,951 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:47:53,952 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 51 transitions. [2019-01-31 14:47:53,952 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:47:53,952 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 51 transitions. [2019-01-31 14:47:53,952 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 51 transitions. [2019-01-31 14:47:54,010 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 51 edges. 51 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:47:54,012 INFO L225 Difference]: With dead ends: 81 [2019-01-31 14:47:54,012 INFO L226 Difference]: Without dead ends: 80 [2019-01-31 14:47:54,013 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:47:54,013 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 80 states. [2019-01-31 14:47:54,480 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 80 to 61. [2019-01-31 14:47:54,480 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:47:54,480 INFO L82 GeneralOperation]: Start isEquivalent. First operand 80 states. Second operand 61 states. [2019-01-31 14:47:54,480 INFO L74 IsIncluded]: Start isIncluded. First operand 80 states. Second operand 61 states. [2019-01-31 14:47:54,480 INFO L87 Difference]: Start difference. First operand 80 states. Second operand 61 states. [2019-01-31 14:47:54,483 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:54,483 INFO L93 Difference]: Finished difference Result 80 states and 296 transitions. [2019-01-31 14:47:54,483 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 296 transitions. [2019-01-31 14:47:54,483 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:47:54,483 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:47:54,483 INFO L74 IsIncluded]: Start isIncluded. First operand 61 states. Second operand 80 states. [2019-01-31 14:47:54,484 INFO L87 Difference]: Start difference. First operand 61 states. Second operand 80 states. [2019-01-31 14:47:54,485 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:54,486 INFO L93 Difference]: Finished difference Result 80 states and 296 transitions. [2019-01-31 14:47:54,486 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 296 transitions. [2019-01-31 14:47:54,486 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:47:54,486 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:47:54,486 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:47:54,486 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:47:54,487 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 61 states. [2019-01-31 14:47:54,488 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 61 states to 61 states and 273 transitions. [2019-01-31 14:47:54,488 INFO L78 Accepts]: Start accepts. Automaton has 61 states and 273 transitions. Word has length 5 [2019-01-31 14:47:54,488 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:47:54,489 INFO L480 AbstractCegarLoop]: Abstraction has 61 states and 273 transitions. [2019-01-31 14:47:54,489 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:47:54,489 INFO L276 IsEmpty]: Start isEmpty. Operand 61 states and 273 transitions. [2019-01-31 14:47:54,489 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:47:54,489 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:47:54,489 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:47:54,490 INFO L423 AbstractCegarLoop]: === Iteration 24 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:47:54,490 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:47:54,490 INFO L82 PathProgramCache]: Analyzing trace with hash 29179176, now seen corresponding path program 1 times [2019-01-31 14:47:54,490 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:47:54,491 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:47:54,491 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:47:54,491 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:47:54,491 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:47:54,496 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:54,698 INFO L273 TraceCheckUtils]: 0: Hoare triple {6129#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {6131#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:47:54,700 INFO L273 TraceCheckUtils]: 1: Hoare triple {6131#(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]; {6132#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (or (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (and (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} is VALID [2019-01-31 14:47:54,701 INFO L273 TraceCheckUtils]: 2: Hoare triple {6132#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (or (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (and (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {6133#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (or (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))))} is VALID [2019-01-31 14:47:54,701 INFO L273 TraceCheckUtils]: 3: Hoare triple {6133#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (or (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) 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]; {6134#(or (<= 1 (select |#memory_int| ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-01-31 14:47:54,702 INFO L273 TraceCheckUtils]: 4: Hoare triple {6134#(or (<= 1 (select |#memory_int| ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} assume !(#memory_int[main_p1] >= 0); {6130#false} is VALID [2019-01-31 14:47:54,702 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:54,702 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:47:54,702 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:47:54,703 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:47:54,703 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [18], [23] [2019-01-31 14:47:54,704 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:47:54,704 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:47:54,711 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:47:54,712 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 2. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-31 14:47:54,712 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:47:54,712 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:47:54,712 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:47:54,712 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 22 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 22 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:47:54,721 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:47:54,721 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:47:54,725 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:54,731 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:54,731 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:47:54,764 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:54,765 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-31 14:47:54,805 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:54,807 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:54,807 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-31 14:47:54,856 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:54,857 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:54,858 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:54,859 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:54,860 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 25 [2019-01-31 14:47:54,862 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:54,872 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:54,882 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:54,900 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 21 [2019-01-31 14:47:54,908 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 5 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 27 [2019-01-31 14:47:54,918 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 6 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:47:54,929 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:47:54,946 INFO L478 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 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:47:54,948 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:54,967 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:54,981 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:54,992 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:55,002 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:55,024 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 2 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:55,025 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 3 variables, input treesize:52, output treesize:50 [2019-01-31 14:47:55,031 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:55,031 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_121|, ULTIMATE.start_main_p5, |v_#valid_27|]. (let ((.cse1 (store |v_#valid_27| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= 0 (select .cse0 ULTIMATE.start_main_p3)) (= 0 (select .cse1 ULTIMATE.start_main_p2)) (= (store (store (store (store (store |v_#memory_int_121| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (= 0 (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4))))) [2019-01-31 14:47:55,031 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:47:55,113 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:55,114 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-31 14:47:55,116 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:55,177 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:55,177 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:55, output treesize:33 [2019-01-31 14:47:55,199 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:55,199 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_122|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_122| ULTIMATE.start_main_p4))) (and (= (store |v_#memory_int_122| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_122| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 .cse0) (= (select |v_#memory_int_122| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_122| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-31 14:47:55,199 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-31 14:47:55,248 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:55,250 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:55,251 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:55,252 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:55,253 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:55,254 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:55,255 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-31 14:47:55,257 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:55,282 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:55,282 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:45, output treesize:27 [2019-01-31 14:47:55,299 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:55,299 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_123|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_123| ULTIMATE.start_main_p3))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (+ (select |v_#memory_int_123| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_123| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (store |v_#memory_int_123| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_123| ULTIMATE.start_main_p1) 0) (= 0 .cse0))) [2019-01-31 14:47:55,299 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2))) [2019-01-31 14:47:55,338 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:55,339 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:55,340 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:55,341 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:55,342 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:55,343 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:55,344 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:55,345 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:47:55,346 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:55,346 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 76 [2019-01-31 14:47:55,349 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:55,376 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:55,376 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:37, output treesize:25 [2019-01-31 14:47:55,395 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:55,395 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_124|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_124| ULTIMATE.start_main_p2))) (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 1 (select |v_#memory_int_124| ULTIMATE.start_main_p3)) (= (store |v_#memory_int_124| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 .cse0) (= 0 (+ (select |v_#memory_int_124| ULTIMATE.start_main_p4) 1)) (= 0 (select |v_#memory_int_124| ULTIMATE.start_main_p1)))) [2019-01-31 14:47:55,395 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (and (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) [2019-01-31 14:47:55,422 INFO L273 TraceCheckUtils]: 0: Hoare triple {6129#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {6138#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:47:55,424 INFO L273 TraceCheckUtils]: 1: Hoare triple {6138#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6142#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-31 14:47:55,425 INFO L273 TraceCheckUtils]: 2: Hoare triple {6142#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {6146#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:47:55,427 INFO L273 TraceCheckUtils]: 3: Hoare triple {6146#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {6150#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)))} is VALID [2019-01-31 14:47:55,428 INFO L273 TraceCheckUtils]: 4: Hoare triple {6150#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)))} assume !(#memory_int[main_p1] >= 0); {6130#false} is VALID [2019-01-31 14:47:55,429 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:55,429 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:47:55,516 INFO L273 TraceCheckUtils]: 4: Hoare triple {6134#(or (<= 1 (select |#memory_int| ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} assume !(#memory_int[main_p1] >= 0); {6130#false} is VALID [2019-01-31 14:47:55,518 INFO L273 TraceCheckUtils]: 3: Hoare triple {6157#(or (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) 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]; {6134#(or (<= 1 (select |#memory_int| ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-01-31 14:47:55,519 INFO L273 TraceCheckUtils]: 2: Hoare triple {6161#(or (= (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 0) (<= 1 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {6157#(or (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:47:55,522 INFO L273 TraceCheckUtils]: 1: Hoare triple {6165#(or (<= 1 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6161#(or (= (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 0) (<= 1 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:47:55,524 INFO L273 TraceCheckUtils]: 0: Hoare triple {6129#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {6165#(or (<= 1 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 0))} is VALID [2019-01-31 14:47:55,525 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:55,545 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:47:55,545 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-31 14:47:55,545 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:47:55,545 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-31 14:47:55,546 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:47:55,546 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:47:55,562 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:47:55,562 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:47:55,562 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:47:55,562 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=54, Invalid=102, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:47:55,563 INFO L87 Difference]: Start difference. First operand 61 states and 273 transitions. Second operand 10 states. [2019-01-31 14:47:57,364 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:57,364 INFO L93 Difference]: Finished difference Result 113 states and 415 transitions. [2019-01-31 14:47:57,364 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-31 14:47:57,364 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-31 14:47:57,365 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:47:57,365 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:47:57,365 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 79 transitions. [2019-01-31 14:47:57,365 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:47:57,365 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 79 transitions. [2019-01-31 14:47:57,366 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 79 transitions. [2019-01-31 14:47:57,484 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 79 edges. 79 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:47:57,487 INFO L225 Difference]: With dead ends: 113 [2019-01-31 14:47:57,488 INFO L226 Difference]: Without dead ends: 112 [2019-01-31 14:47:57,488 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 0 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 55 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=84, Invalid=156, Unknown=0, NotChecked=0, Total=240 [2019-01-31 14:47:57,488 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 112 states. [2019-01-31 14:47:58,046 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 112 to 60. [2019-01-31 14:47:58,046 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:47:58,047 INFO L82 GeneralOperation]: Start isEquivalent. First operand 112 states. Second operand 60 states. [2019-01-31 14:47:58,047 INFO L74 IsIncluded]: Start isIncluded. First operand 112 states. Second operand 60 states. [2019-01-31 14:47:58,047 INFO L87 Difference]: Start difference. First operand 112 states. Second operand 60 states. [2019-01-31 14:47:58,050 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:58,050 INFO L93 Difference]: Finished difference Result 112 states and 410 transitions. [2019-01-31 14:47:58,050 INFO L276 IsEmpty]: Start isEmpty. Operand 112 states and 410 transitions. [2019-01-31 14:47:58,051 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:47:58,051 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:47:58,051 INFO L74 IsIncluded]: Start isIncluded. First operand 60 states. Second operand 112 states. [2019-01-31 14:47:58,051 INFO L87 Difference]: Start difference. First operand 60 states. Second operand 112 states. [2019-01-31 14:47:58,053 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:58,053 INFO L93 Difference]: Finished difference Result 112 states and 410 transitions. [2019-01-31 14:47:58,053 INFO L276 IsEmpty]: Start isEmpty. Operand 112 states and 410 transitions. [2019-01-31 14:47:58,054 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:47:58,054 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:47:58,054 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:47:58,054 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:47:58,054 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 60 states. [2019-01-31 14:47:58,055 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 60 states to 60 states and 267 transitions. [2019-01-31 14:47:58,056 INFO L78 Accepts]: Start accepts. Automaton has 60 states and 267 transitions. Word has length 5 [2019-01-31 14:47:58,056 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:47:58,056 INFO L480 AbstractCegarLoop]: Abstraction has 60 states and 267 transitions. [2019-01-31 14:47:58,056 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:47:58,056 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 267 transitions. [2019-01-31 14:47:58,056 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:47:58,056 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:47:58,057 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:47:58,057 INFO L423 AbstractCegarLoop]: === Iteration 25 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:47:58,057 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:47:58,057 INFO L82 PathProgramCache]: Analyzing trace with hash 29242478, now seen corresponding path program 1 times [2019-01-31 14:47:58,057 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:47:58,057 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:47:58,058 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:47:58,058 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:47:58,058 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:47:58,062 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:58,190 INFO L273 TraceCheckUtils]: 0: Hoare triple {6672#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {6674#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:47:58,191 INFO L273 TraceCheckUtils]: 1: Hoare triple {6674#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {6675#(and (or (= ULTIMATE.start_main_p1 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))) (or (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))))} is VALID [2019-01-31 14:47:58,192 INFO L273 TraceCheckUtils]: 2: Hoare triple {6675#(and (or (= ULTIMATE.start_main_p1 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))) (or (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6676#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} is VALID [2019-01-31 14:47:58,193 INFO L273 TraceCheckUtils]: 3: Hoare triple {6676#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {6677#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:47:58,194 INFO L273 TraceCheckUtils]: 4: Hoare triple {6677#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {6673#false} is VALID [2019-01-31 14:47:58,194 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:58,194 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:47:58,195 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:47:58,195 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:47:58,195 INFO L207 CegarAbsIntRunner]: [0], [6], [18], [20], [23] [2019-01-31 14:47:58,198 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:47:58,198 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:47:58,207 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:47:58,207 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 2. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-31 14:47:58,208 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:47:58,208 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:47:58,208 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:47:58,208 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 23 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 23 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:47:58,218 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:47:58,218 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:47:58,223 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:58,230 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:58,230 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:47:58,335 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 21 [2019-01-31 14:47:58,341 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 27 [2019-01-31 14:47:58,348 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,350 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,350 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:47:58,359 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,360 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,362 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,363 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:47:58,380 INFO L478 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 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:47:58,382 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:58,402 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:58,418 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:58,431 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:58,443 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:58,468 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,469 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-31 14:47:58,522 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,523 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,524 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-31 14:47:58,570 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,571 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,572 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,573 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,574 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 25 [2019-01-31 14:47:58,576 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:58,586 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:58,596 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:58,625 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:58,625 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:52, output treesize:50 [2019-01-31 14:47:58,632 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:58,632 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_128|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, |v_#valid_28|]. (let ((.cse1 (store |v_#valid_28| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= 0 (select .cse0 ULTIMATE.start_main_p3)) (= (store (store (store (store (store |v_#memory_int_128| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (= 0 (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4)) (= 0 (select .cse1 ULTIMATE.start_main_p2))))) [2019-01-31 14:47:58,632 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:47:58,702 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,754 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 7 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 8 case distinctions, treesize of input 36 treesize of output 66 [2019-01-31 14:47:58,761 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 16 xjuncts. [2019-01-31 14:47:58,956 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 11 dim-0 vars, and 5 xjuncts. [2019-01-31 14:47:58,956 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:60, output treesize:183 [2019-01-31 14:48:13,108 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:13,109 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_129|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_129| ULTIMATE.start_main_p5))) (and (= (select |v_#memory_int_129| ULTIMATE.start_main_p1) 0) (= |#memory_int| (store |v_#memory_int_129| ULTIMATE.start_main_p5 (+ .cse0 1))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_129| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 .cse0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_129| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_129| ULTIMATE.start_main_p4) 0))) [2019-01-31 14:48:13,109 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_42, v_prenex_41, ULTIMATE.start_main_p5, v_prenex_44, v_prenex_43, v_prenex_48, v_prenex_47, v_prenex_45, v_prenex_46, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse1 (select |#memory_int| ULTIMATE.start_main_p4)) (.cse4 (select |#memory_int| ULTIMATE.start_main_p1))) (let ((.cse0 (= .cse4 0)) (.cse2 (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))) (.cse3 (= .cse1 0))) (or (and (not (= v_prenex_44 v_prenex_43)) .cse0 (= .cse1 1) (not (= v_prenex_43 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| v_prenex_43)) (not (= v_prenex_44 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_44) 0)) (and (not (= v_prenex_48 ULTIMATE.start_main_p4)) (= 1 (select |#memory_int| v_prenex_47)) .cse0 (not (= v_prenex_48 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_48) 0) .cse2 .cse3) (and (not (= v_prenex_42 ULTIMATE.start_main_p4)) (not (= v_prenex_42 v_prenex_41)) .cse0 (not (= v_prenex_41 ULTIMATE.start_main_p1)) (not (= v_prenex_41 ULTIMATE.start_main_p4)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| v_prenex_41)) (not (= v_prenex_42 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_42) 0) .cse2 .cse3) (and .cse0 (not (= v_prenex_45 ULTIMATE.start_main_p1)) (not (= v_prenex_45 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| v_prenex_45)) (= (select |#memory_int| v_prenex_46) 1) .cse2 .cse3) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= .cse4 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) .cse3)))) [2019-01-31 14:48:13,310 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:13,311 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:13,312 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:13,312 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:13,313 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:13,314 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:48:13,315 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 43 treesize of output 51 [2019-01-31 14:48:13,318 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:13,393 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:13,394 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:13,395 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:13,396 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:13,398 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:13,399 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:13,400 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 43 treesize of output 57 [2019-01-31 14:48:13,402 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:13,481 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:13,482 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:13,483 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:13,484 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:13,485 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:13,487 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:13,488 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 43 treesize of output 65 [2019-01-31 14:48:13,490 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:13,557 INFO L267 ElimStorePlain]: Start of recursive call 1: 9 dim-0 vars, 3 dim-1 vars, End of recursive call: 9 dim-0 vars, and 3 xjuncts. [2019-01-31 14:48:13,557 INFO L202 ElimStorePlain]: Needed 4 recursive calls to eliminate 12 variables, input treesize:130, output treesize:96 [2019-01-31 14:48:24,113 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:24,113 WARN L398 uantifierElimination]: Input elimination task: ∃ [v_prenex_50, v_prenex_49, v_prenex_44, v_prenex_43, |v_#memory_int_130|, ULTIMATE.start_main_p4, v_prenex_45, v_prenex_46, v_prenex_52, v_prenex_51, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (or (let ((.cse0 (select v_prenex_50 v_prenex_49))) (and (not (= v_prenex_44 ULTIMATE.start_main_p1)) (= 1 .cse0) (= 0 (select v_prenex_50 ULTIMATE.start_main_p1)) (not (= v_prenex_44 v_prenex_43)) (= |#memory_int| (store v_prenex_50 v_prenex_49 (+ .cse0 (- 1)))) (not (= v_prenex_43 ULTIMATE.start_main_p1)) (= 0 (select v_prenex_50 v_prenex_43)) (= 0 (select v_prenex_50 v_prenex_44)))) (let ((.cse1 (select |v_#memory_int_130| ULTIMATE.start_main_p4))) (and (= |#memory_int| (store |v_#memory_int_130| ULTIMATE.start_main_p4 (+ .cse1 (- 1)))) (not (= v_prenex_45 ULTIMATE.start_main_p4)) (= 1 (select |v_#memory_int_130| v_prenex_46)) (= 0 (select |v_#memory_int_130| ULTIMATE.start_main_p1)) (= 0 .cse1) (= 0 (select |v_#memory_int_130| v_prenex_45)) (not (= v_prenex_45 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (let ((.cse2 (select v_prenex_52 v_prenex_51))) (and (not (= ULTIMATE.start_main_p2 v_prenex_51)) (not (= ULTIMATE.start_main_p3 v_prenex_51)) (= 0 (select v_prenex_52 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 .cse2) (= 0 (select v_prenex_52 ULTIMATE.start_main_p3)) (= 1 (select v_prenex_52 ULTIMATE.start_main_p1)) (= |#memory_int| (store v_prenex_52 v_prenex_51 (+ .cse2 (- 1))))))) [2019-01-31 14:48:24,114 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_46, v_prenex_45, ULTIMATE.start_main_p4, v_prenex_49, v_prenex_44, v_prenex_43, v_prenex_51, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse1 (select |#memory_int| ULTIMATE.start_main_p1))) (let ((.cse0 (= .cse1 0))) (or (and (= (select |#memory_int| v_prenex_46) 1) .cse0 (= 0 (select |#memory_int| v_prenex_45)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (not (= v_prenex_45 ULTIMATE.start_main_p1))) (and (not (= v_prenex_49 ULTIMATE.start_main_p1)) (not (= v_prenex_44 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| v_prenex_44)) .cse0 (= 0 (select |#memory_int| v_prenex_43)) (= 0 (select |#memory_int| v_prenex_49)) (not (= v_prenex_49 v_prenex_44)) (not (= v_prenex_49 v_prenex_43)) (not (= v_prenex_44 v_prenex_43)) (not (= v_prenex_43 ULTIMATE.start_main_p1))) (and (= (select |#memory_int| v_prenex_51) (- 1)) (= .cse1 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))) [2019-01-31 14:48:24,393 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,394 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 55 treesize of output 51 [2019-01-31 14:48:24,396 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:24,457 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,458 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,459 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,460 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,461 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,462 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,463 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,464 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,465 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,466 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,467 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:48:24,468 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 37 treesize of output 83 [2019-01-31 14:48:24,471 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:24,536 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,537 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,539 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,540 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,541 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,542 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,543 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,544 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,545 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,546 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,547 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,548 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 12 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 37 treesize of output 79 [2019-01-31 14:48:24,551 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:24,619 INFO L267 ElimStorePlain]: Start of recursive call 1: 9 dim-0 vars, 3 dim-1 vars, End of recursive call: 9 dim-0 vars, and 3 xjuncts. [2019-01-31 14:48:24,619 INFO L202 ElimStorePlain]: Needed 4 recursive calls to eliminate 12 variables, input treesize:130, output treesize:88 [2019-01-31 14:48:35,338 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:35,339 WARN L398 uantifierElimination]: Input elimination task: ∃ [v_prenex_53, v_prenex_45, v_prenex_46, ULTIMATE.start_main_p4, v_prenex_54, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, v_prenex_51, |v_#memory_int_131|, v_prenex_49, v_prenex_44, v_prenex_43]. (or (let ((.cse0 (select v_prenex_53 ULTIMATE.start_main_p1))) (and (= 0 (select v_prenex_53 v_prenex_45)) (= 1 (select v_prenex_53 v_prenex_46)) (= (store v_prenex_53 ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (+ (select v_prenex_53 ULTIMATE.start_main_p4) 1) 0) (not (= v_prenex_45 ULTIMATE.start_main_p1)) (= .cse0 0))) (let ((.cse1 (select v_prenex_54 ULTIMATE.start_main_p1))) (and (= .cse1 1) (= (store v_prenex_54 ULTIMATE.start_main_p1 (+ .cse1 1)) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select v_prenex_54 ULTIMATE.start_main_p3) 0) (= 0 (+ (select v_prenex_54 v_prenex_51) 1)) (= (select v_prenex_54 ULTIMATE.start_main_p2) 0))) (let ((.cse2 (select |v_#memory_int_131| ULTIMATE.start_main_p1))) (and (not (= v_prenex_49 ULTIMATE.start_main_p1)) (not (= v_prenex_44 ULTIMATE.start_main_p1)) (not (= v_prenex_49 v_prenex_44)) (not (= v_prenex_49 v_prenex_43)) (= (select |v_#memory_int_131| v_prenex_44) 0) (= 0 (select |v_#memory_int_131| v_prenex_49)) (not (= v_prenex_44 v_prenex_43)) (= (select |v_#memory_int_131| v_prenex_43) 0) (= (store |v_#memory_int_131| ULTIMATE.start_main_p1 (+ .cse2 1)) |#memory_int|) (not (= v_prenex_43 ULTIMATE.start_main_p1)) (= .cse2 0)))) [2019-01-31 14:48:35,339 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, v_prenex_51, v_prenex_44, v_prenex_43, v_prenex_49, v_prenex_46, ULTIMATE.start_main_p4, v_prenex_45]. (let ((.cse0 (select |#memory_int| ULTIMATE.start_main_p1))) (let ((.cse1 (= .cse0 1))) (or (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= .cse0 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (+ (select |#memory_int| v_prenex_51) 1) 0)) (and (= 0 (select |#memory_int| v_prenex_44)) .cse1 (= 0 (select |#memory_int| v_prenex_43)) (= 0 (select |#memory_int| v_prenex_49)) (not (= v_prenex_49 v_prenex_44)) (not (= v_prenex_49 v_prenex_43)) (not (= v_prenex_44 v_prenex_43))) (and .cse1 (= (select |#memory_int| v_prenex_46) 1) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| v_prenex_45)) (not (= v_prenex_46 ULTIMATE.start_main_p1)))))) [2019-01-31 14:48:35,525 INFO L273 TraceCheckUtils]: 0: Hoare triple {6672#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {6681#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:48:35,527 INFO L273 TraceCheckUtils]: 1: Hoare triple {6681#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {6685#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) (and (= (select |#memory_int| ULTIMATE.start_main_p4) 1) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_44 Int) (v_prenex_43 Int)) (and (not (= v_prenex_44 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| v_prenex_43)) (not (= v_prenex_44 v_prenex_43)) (not (= v_prenex_43 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_44) 0)))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_46 Int)) (= (select |#memory_int| v_prenex_46) 1)) (exists ((v_prenex_45 Int)) (and (not (= v_prenex_45 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| v_prenex_45)) (not (= v_prenex_45 ULTIMATE.start_main_p1)))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))))} is VALID [2019-01-31 14:48:35,535 INFO L273 TraceCheckUtils]: 2: Hoare triple {6685#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) (and (= (select |#memory_int| ULTIMATE.start_main_p4) 1) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_44 Int) (v_prenex_43 Int)) (and (not (= v_prenex_44 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| v_prenex_43)) (not (= v_prenex_44 v_prenex_43)) (not (= v_prenex_43 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_44) 0)))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_46 Int)) (= (select |#memory_int| v_prenex_46) 1)) (exists ((v_prenex_45 Int)) (and (not (= v_prenex_45 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| v_prenex_45)) (not (= v_prenex_45 ULTIMATE.start_main_p1)))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6689#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_49 Int) (v_prenex_44 Int) (v_prenex_43 Int)) (and (not (= v_prenex_44 ULTIMATE.start_main_p1)) (not (= v_prenex_49 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| v_prenex_44)) (= 0 (select |#memory_int| v_prenex_43)) (= 0 (select |#memory_int| v_prenex_49)) (not (= v_prenex_49 v_prenex_44)) (not (= v_prenex_49 v_prenex_43)) (not (= v_prenex_44 v_prenex_43)) (not (= v_prenex_43 ULTIMATE.start_main_p1))))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_51 Int)) (= (+ (select |#memory_int| v_prenex_51) 1) 0)) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)))) (and (exists ((v_prenex_45 Int)) (and (= 0 (select |#memory_int| v_prenex_45)) (not (= v_prenex_45 ULTIMATE.start_main_p1)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((v_prenex_46 Int)) (= (select |#memory_int| v_prenex_46) 1))))} is VALID [2019-01-31 14:48:35,540 INFO L273 TraceCheckUtils]: 3: Hoare triple {6689#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_49 Int) (v_prenex_44 Int) (v_prenex_43 Int)) (and (not (= v_prenex_44 ULTIMATE.start_main_p1)) (not (= v_prenex_49 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| v_prenex_44)) (= 0 (select |#memory_int| v_prenex_43)) (= 0 (select |#memory_int| v_prenex_49)) (not (= v_prenex_49 v_prenex_44)) (not (= v_prenex_49 v_prenex_43)) (not (= v_prenex_44 v_prenex_43)) (not (= v_prenex_43 ULTIMATE.start_main_p1))))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_51 Int)) (= (+ (select |#memory_int| v_prenex_51) 1) 0)) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)))) (and (exists ((v_prenex_45 Int)) (and (= 0 (select |#memory_int| v_prenex_45)) (not (= v_prenex_45 ULTIMATE.start_main_p1)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((v_prenex_46 Int)) (= (select |#memory_int| v_prenex_46) 1))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {6693#(or (and (exists ((v_prenex_51 Int)) (= (+ (select |#memory_int| v_prenex_51) 1) 0)) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_49 Int) (v_prenex_44 Int) (v_prenex_43 Int)) (and (= 0 (select |#memory_int| v_prenex_44)) (= 0 (select |#memory_int| v_prenex_43)) (= 0 (select |#memory_int| v_prenex_49)) (not (= v_prenex_49 v_prenex_44)) (not (= v_prenex_49 v_prenex_43)) (not (= v_prenex_44 v_prenex_43))))) (and (exists ((v_prenex_45 Int)) (= 0 (select |#memory_int| v_prenex_45))) (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_46 Int)) (and (= (select |#memory_int| v_prenex_46) 1) (not (= v_prenex_46 ULTIMATE.start_main_p1)))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))))} is VALID [2019-01-31 14:48:35,541 INFO L273 TraceCheckUtils]: 4: Hoare triple {6693#(or (and (exists ((v_prenex_51 Int)) (= (+ (select |#memory_int| v_prenex_51) 1) 0)) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_49 Int) (v_prenex_44 Int) (v_prenex_43 Int)) (and (= 0 (select |#memory_int| v_prenex_44)) (= 0 (select |#memory_int| v_prenex_43)) (= 0 (select |#memory_int| v_prenex_49)) (not (= v_prenex_49 v_prenex_44)) (not (= v_prenex_49 v_prenex_43)) (not (= v_prenex_44 v_prenex_43))))) (and (exists ((v_prenex_45 Int)) (= 0 (select |#memory_int| v_prenex_45))) (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_46 Int)) (and (= (select |#memory_int| v_prenex_46) 1) (not (= v_prenex_46 ULTIMATE.start_main_p1)))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))))} assume !(#memory_int[main_p1] >= 0); {6673#false} is VALID [2019-01-31 14:48:35,542 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:48:35,542 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:48:35,573 INFO L273 TraceCheckUtils]: 4: Hoare triple {6677#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {6673#false} is VALID [2019-01-31 14:48:35,573 INFO L273 TraceCheckUtils]: 3: Hoare triple {6676#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {6677#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:48:35,574 INFO L273 TraceCheckUtils]: 2: Hoare triple {6703#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6676#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} is VALID [2019-01-31 14:48:35,576 INFO L273 TraceCheckUtils]: 1: Hoare triple {6707#(<= 0 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {6703#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1))} is VALID [2019-01-31 14:48:35,578 INFO L273 TraceCheckUtils]: 0: Hoare triple {6672#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {6707#(<= 0 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1))} is VALID [2019-01-31 14:48:35,578 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 4 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:48:35,598 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:48:35,598 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 10 [2019-01-31 14:48:35,599 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:48:35,599 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-31 14:48:35,599 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:48:35,599 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:48:35,628 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:48:35,628 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:48:35,629 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:48:35,629 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-01-31 14:48:35,629 INFO L87 Difference]: Start difference. First operand 60 states and 267 transitions. Second operand 10 states. [2019-01-31 14:48:39,132 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:48:39,132 INFO L93 Difference]: Finished difference Result 137 states and 516 transitions. [2019-01-31 14:48:39,132 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2019-01-31 14:48:39,133 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-31 14:48:39,133 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:48:39,133 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:48:39,133 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 107 transitions. [2019-01-31 14:48:39,133 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:48:39,134 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 107 transitions. [2019-01-31 14:48:39,134 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states and 107 transitions. [2019-01-31 14:48:39,363 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 107 edges. 107 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:48:39,366 INFO L225 Difference]: With dead ends: 137 [2019-01-31 14:48:39,367 INFO L226 Difference]: Without dead ends: 136 [2019-01-31 14:48:39,367 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 43 ImplicationChecksByTransitivity, 0.9s TimeCoverageRelationStatistics Valid=90, Invalid=150, Unknown=0, NotChecked=0, Total=240 [2019-01-31 14:48:39,367 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 136 states. [2019-01-31 14:48:40,393 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 136 to 93. [2019-01-31 14:48:40,393 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:48:40,393 INFO L82 GeneralOperation]: Start isEquivalent. First operand 136 states. Second operand 93 states. [2019-01-31 14:48:40,393 INFO L74 IsIncluded]: Start isIncluded. First operand 136 states. Second operand 93 states. [2019-01-31 14:48:40,393 INFO L87 Difference]: Start difference. First operand 136 states. Second operand 93 states. [2019-01-31 14:48:40,397 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:48:40,397 INFO L93 Difference]: Finished difference Result 136 states and 513 transitions. [2019-01-31 14:48:40,397 INFO L276 IsEmpty]: Start isEmpty. Operand 136 states and 513 transitions. [2019-01-31 14:48:40,398 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:48:40,398 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:48:40,398 INFO L74 IsIncluded]: Start isIncluded. First operand 93 states. Second operand 136 states. [2019-01-31 14:48:40,398 INFO L87 Difference]: Start difference. First operand 93 states. Second operand 136 states. [2019-01-31 14:48:40,402 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:48:40,402 INFO L93 Difference]: Finished difference Result 136 states and 513 transitions. [2019-01-31 14:48:40,402 INFO L276 IsEmpty]: Start isEmpty. Operand 136 states and 513 transitions. [2019-01-31 14:48:40,402 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:48:40,403 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:48:40,403 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:48:40,403 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:48:40,403 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 93 states. [2019-01-31 14:48:40,405 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 93 states to 93 states and 468 transitions. [2019-01-31 14:48:40,406 INFO L78 Accepts]: Start accepts. Automaton has 93 states and 468 transitions. Word has length 5 [2019-01-31 14:48:40,406 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:48:40,406 INFO L480 AbstractCegarLoop]: Abstraction has 93 states and 468 transitions. [2019-01-31 14:48:40,406 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:48:40,406 INFO L276 IsEmpty]: Start isEmpty. Operand 93 states and 468 transitions. [2019-01-31 14:48:40,406 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:48:40,407 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:48:40,407 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:48:40,407 INFO L423 AbstractCegarLoop]: === Iteration 26 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:48:40,407 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:48:40,407 INFO L82 PathProgramCache]: Analyzing trace with hash 29231506, now seen corresponding path program 1 times [2019-01-31 14:48:40,407 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:48:40,408 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:48:40,408 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:48:40,408 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:48:40,408 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:48:40,411 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:48:40,515 INFO L273 TraceCheckUtils]: 0: Hoare triple {7370#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {7372#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:48:40,516 INFO L273 TraceCheckUtils]: 1: Hoare triple {7372#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {7373#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:48:40,517 INFO L273 TraceCheckUtils]: 2: Hoare triple {7373#(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]; {7373#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:48:40,518 INFO L273 TraceCheckUtils]: 3: Hoare triple {7373#(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)))} assume #memory_int[main_p1] >= 0; {7374#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:48:40,518 INFO L273 TraceCheckUtils]: 4: Hoare triple {7374#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {7371#false} is VALID [2019-01-31 14:48:40,519 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:48:40,519 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:48:40,519 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:48:40,520 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:48:40,520 INFO L207 CegarAbsIntRunner]: [0], [6], [20], [24], [25] [2019-01-31 14:48:40,521 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:48:40,521 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:48:40,530 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:48:40,530 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 2. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:48:40,530 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:48:40,530 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:48:40,530 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:48:40,531 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 24 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 24 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:48:40,539 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:48:40,540 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:48:40,550 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:48:40,555 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:48:40,555 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:48:40,597 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:40,598 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 48 treesize of output 54 [2019-01-31 14:48:40,647 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:40,648 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:40,649 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 41 treesize of output 53 [2019-01-31 14:48:40,703 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:40,704 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:40,706 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:40,707 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:40,708 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 61 [2019-01-31 14:48:40,774 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:40,775 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:40,776 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:40,778 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:40,779 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:40,780 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:40,781 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 11 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 41 [2019-01-31 14:48:40,785 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:40,802 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:40,819 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:40,836 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:40,863 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 4 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 21 [2019-01-31 14:48:40,872 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 7 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 27 [2019-01-31 14:48:40,883 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 9 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:48:40,896 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 10 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:48:40,913 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:48:40,917 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:40,942 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:40,956 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:40,968 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:40,979 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:41,017 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:48:41,017 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 4 variables, input treesize:69, output treesize:66 [2019-01-31 14:48:41,027 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:41,028 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_135|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, |v_#valid_29|]. (let ((.cse1 (store |v_#valid_29| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (let ((.cse2 (store .cse0 ULTIMATE.start_main_p3 1))) (and (= (select .cse0 ULTIMATE.start_main_p3) 0) (= (store (store (store (store (store |v_#memory_int_135| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (= (select .cse1 ULTIMATE.start_main_p2) 0) (= (select (store .cse2 ULTIMATE.start_main_p4 1) ULTIMATE.start_main_p5) 0) (= 0 (select .cse2 ULTIMATE.start_main_p4)))))) [2019-01-31 14:48:41,028 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (and (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:48:41,107 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:41,108 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 11 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 72 [2019-01-31 14:48:41,110 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:41,175 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:48:41,175 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:76, output treesize:50 [2019-01-31 14:48:51,261 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:51,262 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_136|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_136| ULTIMATE.start_main_p5))) (and (= (select |v_#memory_int_136| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_136| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_136| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= |#memory_int| (store |v_#memory_int_136| ULTIMATE.start_main_p5 (+ .cse0 1))) (= .cse0 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_136| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) [2019-01-31 14:48:51,262 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:48:51,336 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:51,337 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:51,338 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:51,339 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:51,340 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:51,341 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:51,342 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:48:51,343 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 11 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 80 [2019-01-31 14:48:51,347 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:51,386 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:48:51,386 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:60, output treesize:42 [2019-01-31 14:48:51,431 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:51,431 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_137|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_137| ULTIMATE.start_main_p1))) (and (= 1 (select |v_#memory_int_137| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= .cse0 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_137| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= |#memory_int| (store |v_#memory_int_137| ULTIMATE.start_main_p1 (+ .cse0 1))) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_137| ULTIMATE.start_main_p3) 0) (= 0 (select |v_#memory_int_137| ULTIMATE.start_main_p4)))) [2019-01-31 14:48:51,431 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:48:51,483 INFO L273 TraceCheckUtils]: 0: Hoare triple {7370#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {7378#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:48:51,485 INFO L273 TraceCheckUtils]: 1: Hoare triple {7378#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {7382#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-31 14:48:51,488 INFO L273 TraceCheckUtils]: 2: Hoare triple {7382#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {7386#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-31 14:48:51,489 INFO L273 TraceCheckUtils]: 3: Hoare triple {7386#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p1] >= 0; {7386#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-31 14:48:51,490 INFO L273 TraceCheckUtils]: 4: Hoare triple {7386#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p2] <= 0); {7371#false} is VALID [2019-01-31 14:48:51,490 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:48:51,490 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:48:51,528 INFO L273 TraceCheckUtils]: 4: Hoare triple {7393#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {7371#false} is VALID [2019-01-31 14:48:51,529 INFO L273 TraceCheckUtils]: 3: Hoare triple {7393#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {7393#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:48:51,531 INFO L273 TraceCheckUtils]: 2: Hoare triple {7400#(<= (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]; {7393#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:48:51,532 INFO L273 TraceCheckUtils]: 1: Hoare triple {7404#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {7400#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:48:51,533 INFO L273 TraceCheckUtils]: 0: Hoare triple {7370#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {7404#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:48:51,534 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:48:51,552 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:48:51,552 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:48:51,552 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:48:51,553 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:48:51,553 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:48:51,553 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:48:51,567 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:48:51,567 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:48:51,567 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:48:51,567 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=43, Invalid=67, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:48:51,568 INFO L87 Difference]: Start difference. First operand 93 states and 468 transitions. Second operand 8 states. [2019-01-31 14:48:53,606 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:48:53,607 INFO L93 Difference]: Finished difference Result 120 states and 513 transitions. [2019-01-31 14:48:53,607 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:48:53,607 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:48:53,607 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:48:53,607 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:48:53,608 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 58 transitions. [2019-01-31 14:48:53,608 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:48:53,608 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 58 transitions. [2019-01-31 14:48:53,608 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 58 transitions. [2019-01-31 14:48:53,695 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 58 edges. 58 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:48:53,698 INFO L225 Difference]: With dead ends: 120 [2019-01-31 14:48:53,698 INFO L226 Difference]: Without dead ends: 119 [2019-01-31 14:48:53,698 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 2 SyntacticMatches, 1 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:48:53,699 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 119 states. [2019-01-31 14:48:54,810 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 119 to 96. [2019-01-31 14:48:54,811 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:48:54,811 INFO L82 GeneralOperation]: Start isEquivalent. First operand 119 states. Second operand 96 states. [2019-01-31 14:48:54,811 INFO L74 IsIncluded]: Start isIncluded. First operand 119 states. Second operand 96 states. [2019-01-31 14:48:54,811 INFO L87 Difference]: Start difference. First operand 119 states. Second operand 96 states. [2019-01-31 14:48:54,814 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:48:54,814 INFO L93 Difference]: Finished difference Result 119 states and 511 transitions. [2019-01-31 14:48:54,814 INFO L276 IsEmpty]: Start isEmpty. Operand 119 states and 511 transitions. [2019-01-31 14:48:54,815 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:48:54,815 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:48:54,815 INFO L74 IsIncluded]: Start isIncluded. First operand 96 states. Second operand 119 states. [2019-01-31 14:48:54,815 INFO L87 Difference]: Start difference. First operand 96 states. Second operand 119 states. [2019-01-31 14:48:54,818 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:48:54,818 INFO L93 Difference]: Finished difference Result 119 states and 511 transitions. [2019-01-31 14:48:54,818 INFO L276 IsEmpty]: Start isEmpty. Operand 119 states and 511 transitions. [2019-01-31 14:48:54,818 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:48:54,818 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:48:54,818 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:48:54,818 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:48:54,819 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 96 states. [2019-01-31 14:48:54,821 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 96 states to 96 states and 486 transitions. [2019-01-31 14:48:54,821 INFO L78 Accepts]: Start accepts. Automaton has 96 states and 486 transitions. Word has length 5 [2019-01-31 14:48:54,821 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:48:54,821 INFO L480 AbstractCegarLoop]: Abstraction has 96 states and 486 transitions. [2019-01-31 14:48:54,821 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:48:54,821 INFO L276 IsEmpty]: Start isEmpty. Operand 96 states and 486 transitions. [2019-01-31 14:48:54,822 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:48:54,822 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:48:54,822 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:48:54,822 INFO L423 AbstractCegarLoop]: === Iteration 27 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:48:54,822 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:48:54,822 INFO L82 PathProgramCache]: Analyzing trace with hash 29248868, now seen corresponding path program 1 times [2019-01-31 14:48:54,822 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:48:54,823 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:48:54,823 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:48:54,823 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:48:54,823 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:48:54,826 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:48:54,915 INFO L273 TraceCheckUtils]: 0: Hoare triple {8020#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {8022#(and (or (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3))) (or (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p5) 0)))} is VALID [2019-01-31 14:48:54,917 INFO L273 TraceCheckUtils]: 1: Hoare triple {8022#(and (or (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3))) (or (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p5) 0)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {8023#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:48:54,917 INFO L273 TraceCheckUtils]: 2: Hoare triple {8023#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {8023#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:48:54,918 INFO L273 TraceCheckUtils]: 3: Hoare triple {8023#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {8023#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:48:54,918 INFO L273 TraceCheckUtils]: 4: Hoare triple {8023#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {8021#false} is VALID [2019-01-31 14:48:54,919 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:48:54,919 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:48:54,919 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:48:54,919 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:48:54,920 INFO L207 CegarAbsIntRunner]: [0], [20], [24], [26], [27] [2019-01-31 14:48:54,922 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:48:54,922 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:48:54,935 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:48:54,935 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 2. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-31 14:48:54,936 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:48:54,936 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:48:54,936 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:48:54,936 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 25 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 25 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:48:54,944 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:48:54,944 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:48:54,948 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:48:54,951 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:48:54,952 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:48:54,967 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 21 [2019-01-31 14:48:54,974 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:48:55,018 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:55,019 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:55,019 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 33 [2019-01-31 14:48:55,029 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:55,030 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:55,031 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:55,032 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 5 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 47 [2019-01-31 14:48:55,045 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:55,048 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:55,049 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:55,050 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:55,051 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 62 [2019-01-31 14:48:55,055 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:55,088 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:55,103 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:55,115 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:55,125 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:55,146 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 43 treesize of output 39 [2019-01-31 14:48:55,171 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:55,173 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:55,173 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 49 [2019-01-31 14:48:55,222 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:55,223 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:55,225 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:55,226 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:55,227 INFO L478 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 32 treesize of output 57 [2019-01-31 14:48:55,289 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:55,290 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:55,291 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:55,292 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:55,293 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:55,295 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:55,296 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 37 [2019-01-31 14:48:55,299 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:55,313 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:55,328 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:55,345 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:55,382 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 2 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:48:55,383 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 5 variables, input treesize:61, output treesize:62 [2019-01-31 14:48:55,393 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:55,393 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_140|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4, |v_#valid_30|]. (let ((.cse1 (store (store |v_#valid_30| ULTIMATE.start_main_p1 1) ULTIMATE.start_main_p2 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p3 1))) (and (= (select .cse0 ULTIMATE.start_main_p4) 0) (= 0 (select .cse1 ULTIMATE.start_main_p3)) (= (select (store .cse0 ULTIMATE.start_main_p4 1) ULTIMATE.start_main_p5) 0) (= (store (store (store (store (store |v_#memory_int_140| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|)))) [2019-01-31 14:48:55,393 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (and (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:48:55,468 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:55,469 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 68 [2019-01-31 14:48:55,472 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:55,507 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:48:55,507 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:72, output treesize:46 [2019-01-31 14:48:55,544 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:55,544 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_141|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_141| ULTIMATE.start_main_p5))) (and (= (select |v_#memory_int_141| ULTIMATE.start_main_p4) 0) (= |#memory_int| (store |v_#memory_int_141| ULTIMATE.start_main_p5 (+ .cse0 1))) (= 0 (select |v_#memory_int_141| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_141| ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_141| ULTIMATE.start_main_p3)) (= .cse0 0))) [2019-01-31 14:48:55,545 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:48:55,767 INFO L273 TraceCheckUtils]: 0: Hoare triple {8020#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {8027#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-31 14:48:55,770 INFO L273 TraceCheckUtils]: 1: Hoare triple {8027#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {8031#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-31 14:48:55,771 INFO L273 TraceCheckUtils]: 2: Hoare triple {8031#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p1] >= 0; {8031#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-31 14:48:55,772 INFO L273 TraceCheckUtils]: 3: Hoare triple {8031#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p2] <= 0; {8031#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-31 14:48:55,773 INFO L273 TraceCheckUtils]: 4: Hoare triple {8031#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume !(#memory_int[main_p3] >= 0); {8021#false} is VALID [2019-01-31 14:48:55,773 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:48:55,774 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:48:55,789 INFO L273 TraceCheckUtils]: 4: Hoare triple {8023#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {8021#false} is VALID [2019-01-31 14:48:55,790 INFO L273 TraceCheckUtils]: 3: Hoare triple {8023#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {8023#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:48:55,791 INFO L273 TraceCheckUtils]: 2: Hoare triple {8023#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {8023#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:48:55,792 INFO L273 TraceCheckUtils]: 1: Hoare triple {8050#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {8023#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:48:55,793 INFO L273 TraceCheckUtils]: 0: Hoare triple {8020#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {8050#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:48:55,793 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:48:55,811 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-01-31 14:48:55,812 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 5 [2019-01-31 14:48:55,812 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-31 14:48:55,812 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-01-31 14:48:55,812 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:48:55,812 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-31 14:48:55,817 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 5 edges. 5 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:48:55,817 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-31 14:48:55,817 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-31 14:48:55,817 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=20, Invalid=22, Unknown=0, NotChecked=0, Total=42 [2019-01-31 14:48:55,818 INFO L87 Difference]: Start difference. First operand 96 states and 486 transitions. Second operand 4 states. [2019-01-31 14:48:58,093 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:48:58,093 INFO L93 Difference]: Finished difference Result 105 states and 515 transitions. [2019-01-31 14:48:58,093 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-31 14:48:58,093 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-01-31 14:48:58,093 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:48:58,093 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-31 14:48:58,094 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 25 transitions. [2019-01-31 14:48:58,094 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-31 14:48:58,094 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 25 transitions. [2019-01-31 14:48:58,094 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 25 transitions. [2019-01-31 14:48:58,115 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 25 edges. 25 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:48:58,118 INFO L225 Difference]: With dead ends: 105 [2019-01-31 14:48:58,118 INFO L226 Difference]: Without dead ends: 104 [2019-01-31 14:48:58,119 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 5 SyntacticMatches, 0 SemanticMatches, 5 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 8 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=20, Invalid=22, Unknown=0, NotChecked=0, Total=42 [2019-01-31 14:48:58,119 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 104 states. [2019-01-31 14:48:59,390 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 104 to 103. [2019-01-31 14:48:59,390 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:48:59,390 INFO L82 GeneralOperation]: Start isEquivalent. First operand 104 states. Second operand 103 states. [2019-01-31 14:48:59,390 INFO L74 IsIncluded]: Start isIncluded. First operand 104 states. Second operand 103 states. [2019-01-31 14:48:59,390 INFO L87 Difference]: Start difference. First operand 104 states. Second operand 103 states. [2019-01-31 14:48:59,394 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:48:59,394 INFO L93 Difference]: Finished difference Result 104 states and 513 transitions. [2019-01-31 14:48:59,394 INFO L276 IsEmpty]: Start isEmpty. Operand 104 states and 513 transitions. [2019-01-31 14:48:59,394 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:48:59,395 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:48:59,395 INFO L74 IsIncluded]: Start isIncluded. First operand 103 states. Second operand 104 states. [2019-01-31 14:48:59,395 INFO L87 Difference]: Start difference. First operand 103 states. Second operand 104 states. [2019-01-31 14:48:59,398 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:48:59,398 INFO L93 Difference]: Finished difference Result 104 states and 513 transitions. [2019-01-31 14:48:59,399 INFO L276 IsEmpty]: Start isEmpty. Operand 104 states and 513 transitions. [2019-01-31 14:48:59,399 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:48:59,399 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:48:59,399 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:48:59,400 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:48:59,400 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 103 states. [2019-01-31 14:48:59,403 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 103 states to 103 states and 513 transitions. [2019-01-31 14:48:59,403 INFO L78 Accepts]: Start accepts. Automaton has 103 states and 513 transitions. Word has length 5 [2019-01-31 14:48:59,403 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:48:59,403 INFO L480 AbstractCegarLoop]: Abstraction has 103 states and 513 transitions. [2019-01-31 14:48:59,403 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-31 14:48:59,404 INFO L276 IsEmpty]: Start isEmpty. Operand 103 states and 513 transitions. [2019-01-31 14:48:59,404 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:48:59,404 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:48:59,404 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:48:59,405 INFO L423 AbstractCegarLoop]: === Iteration 28 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:48:59,405 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:48:59,405 INFO L82 PathProgramCache]: Analyzing trace with hash 29235162, now seen corresponding path program 3 times [2019-01-31 14:48:59,405 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:48:59,406 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:48:59,406 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:48:59,406 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:48:59,406 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:48:59,411 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:48:59,858 INFO L273 TraceCheckUtils]: 0: Hoare triple {8631#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {8633#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p5) 0) (or (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1))) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:48:59,860 INFO L273 TraceCheckUtils]: 1: Hoare triple {8633#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p5) 0) (or (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1))) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {8634#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (or (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) 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))) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:48:59,861 INFO L273 TraceCheckUtils]: 2: Hoare triple {8634#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (or (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) 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))) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {8635#(and (or (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:48:59,862 INFO L273 TraceCheckUtils]: 3: Hoare triple {8635#(and (or (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) 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]; {8636#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:48:59,863 INFO L273 TraceCheckUtils]: 4: Hoare triple {8636#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {8632#false} is VALID [2019-01-31 14:48:59,863 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:48:59,864 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:48:59,864 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:48:59,864 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-31 14:48:59,864 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-31 14:48:59,864 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:48:59,865 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 26 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 26 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:48:59,875 INFO L103 rtionOrderModulation]: Keeping assertion order TERMS_WITH_SMALL_CONSTANTS_FIRST [2019-01-31 14:48:59,875 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder TERMS_WITH_SMALL_CONSTANTS_FIRST (IT: FPandBP) [2019-01-31 14:48:59,879 INFO L249 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2019-01-31 14:48:59,879 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-31 14:48:59,884 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:48:59,884 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:48:59,931 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 21 [2019-01-31 14:48:59,940 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 27 [2019-01-31 14:48:59,947 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:59,949 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:59,950 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:48:59,960 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:59,961 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:59,962 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:59,963 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:48:59,980 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:48:59,983 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:00,004 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:00,020 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:00,033 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:00,045 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:00,070 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:00,071 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-31 14:49:00,111 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:00,112 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:00,113 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-31 14:49:00,165 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:00,166 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:00,167 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:00,168 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:00,169 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 25 [2019-01-31 14:49:00,171 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:00,180 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:00,188 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:00,214 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 2 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:00,214 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 3 variables, input treesize:52, output treesize:50 [2019-01-31 14:49:00,220 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:00,220 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_143|, ULTIMATE.start_main_p3, |v_#valid_31|]. (let ((.cse1 (store |v_#valid_31| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= |#memory_int| (store (store (store (store (store |v_#memory_int_143| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0)) (= 0 (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4)) (= (select .cse1 ULTIMATE.start_main_p2) 0) (= 0 (select .cse0 ULTIMATE.start_main_p3))))) [2019-01-31 14:49:00,220 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:49:00,289 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:00,319 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 7 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 8 case distinctions, treesize of input 36 treesize of output 66 [2019-01-31 14:49:00,325 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 16 xjuncts. [2019-01-31 14:49:00,507 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 6 dim-0 vars, and 5 xjuncts. [2019-01-31 14:49:00,508 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:60, output treesize:183 [2019-01-31 14:49:08,021 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:08,021 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_144|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_144| ULTIMATE.start_main_p5))) (and (= 0 (select |v_#memory_int_144| ULTIMATE.start_main_p3)) (= (store |v_#memory_int_144| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 .cse0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_144| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_144| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_144| ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-31 14:49:08,021 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_58, ULTIMATE.start_main_p5, v_prenex_56, v_prenex_55, v_prenex_57, ULTIMATE.start_main_p3]. (let ((.cse5 (select |#memory_int| ULTIMATE.start_main_p4)) (.cse8 (select |#memory_int| ULTIMATE.start_main_p2)) (.cse0 (select |#memory_int| ULTIMATE.start_main_p1))) (let ((.cse4 (= .cse0 0)) (.cse6 (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1))) (.cse1 (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4))) (.cse2 (= 0 .cse8)) (.cse7 (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))) (.cse3 (= .cse5 0))) (or (and (not (= v_prenex_56 ULTIMATE.start_main_p4)) (= .cse0 1) (not (= v_prenex_56 ULTIMATE.start_main_p2)) .cse1 .cse2 (= (select |#memory_int| v_prenex_56) 0) .cse3) (and (not (= v_prenex_55 ULTIMATE.start_main_p2)) .cse4 (= .cse5 1) .cse6 .cse2 (not (= v_prenex_55 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_55) 0)) (and .cse4 .cse6 .cse1 (= (select |#memory_int| v_prenex_57) 1) .cse2 .cse7 .cse3) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 1 .cse8) .cse4 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) .cse7 .cse3) (and (not (= v_prenex_58 ULTIMATE.start_main_p4)) (not (= v_prenex_58 ULTIMATE.start_main_p2)) .cse4 .cse6 .cse1 (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) .cse2 (not (= v_prenex_58 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_58) 0) .cse7 .cse3)))) [2019-01-31 14:49:08,234 WARN L181 SmtUtils]: Spent 124.00 ms on a formula simplification. DAG size of input: 73 DAG size of output: 57 [2019-01-31 14:49:08,346 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:08,347 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:08,348 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:08,349 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:08,350 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:08,351 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:08,352 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 43 treesize of output 61 [2019-01-31 14:49:08,354 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:08,456 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:08,457 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:08,458 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:08,459 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:08,460 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:08,461 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:08,462 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 43 treesize of output 65 [2019-01-31 14:49:08,465 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:08,558 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:08,560 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:08,561 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:08,562 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:08,563 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:08,564 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:08,565 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 43 treesize of output 65 [2019-01-31 14:49:08,567 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:08,648 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:08,649 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:08,650 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:08,651 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:08,652 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:49:08,653 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 43 treesize of output 51 [2019-01-31 14:49:08,656 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:08,726 INFO L267 ElimStorePlain]: Start of recursive call 1: 8 dim-0 vars, 4 dim-1 vars, End of recursive call: 8 dim-0 vars, and 4 xjuncts. [2019-01-31 14:49:08,726 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 12 variables, input treesize:173, output treesize:121 [2019-01-31 14:49:19,554 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:19,555 WARN L398 uantifierElimination]: Input elimination task: ∃ [v_prenex_62, v_prenex_61, v_prenex_57, v_prenex_64, v_prenex_63, v_prenex_56, |v_#memory_int_145|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, v_prenex_60, v_prenex_59, v_prenex_55]. (let ((.cse1 (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (or (let ((.cse0 (select v_prenex_62 v_prenex_61))) (and (not (= v_prenex_61 ULTIMATE.start_main_p4)) (not (= v_prenex_61 ULTIMATE.start_main_p1)) (= 0 (select v_prenex_62 ULTIMATE.start_main_p4)) (= 0 (select v_prenex_62 ULTIMATE.start_main_p1)) (= 0 .cse0) (= 1 (select v_prenex_62 v_prenex_57)) (= (store v_prenex_62 v_prenex_61 (+ .cse0 (- 1))) |#memory_int|) .cse1)) (let ((.cse2 (select v_prenex_64 v_prenex_63))) (and (not (= v_prenex_63 ULTIMATE.start_main_p4)) (= (store v_prenex_64 v_prenex_63 (+ .cse2 (- 1))) |#memory_int|) (not (= v_prenex_56 v_prenex_63)) (= 0 (select v_prenex_64 ULTIMATE.start_main_p4)) (= 0 .cse2) (not (= v_prenex_56 ULTIMATE.start_main_p4)) (= 1 (select v_prenex_64 ULTIMATE.start_main_p1)) (= (select v_prenex_64 v_prenex_56) 0))) (let ((.cse3 (select |v_#memory_int_145| ULTIMATE.start_main_p2))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_145| ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_145| ULTIMATE.start_main_p3)) (= 0 (select |v_#memory_int_145| ULTIMATE.start_main_p1)) (= (store |v_#memory_int_145| ULTIMATE.start_main_p2 (+ .cse3 (- 1))) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 1 .cse3) .cse1)) (let ((.cse4 (select v_prenex_60 v_prenex_59))) (and (not (= v_prenex_59 ULTIMATE.start_main_p1)) (= 0 .cse4) (= (store v_prenex_60 v_prenex_59 (+ .cse4 (- 1))) |#memory_int|) (not (= v_prenex_55 v_prenex_59)) (= 0 (select v_prenex_60 ULTIMATE.start_main_p1)) (= 1 (select v_prenex_60 ULTIMATE.start_main_p4)) (not (= v_prenex_55 ULTIMATE.start_main_p1)) (= (select v_prenex_60 v_prenex_55) 0))))) [2019-01-31 14:49:19,555 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, v_prenex_59, v_prenex_55, v_prenex_61, v_prenex_57, v_prenex_56, v_prenex_63]. (let ((.cse3 (select |#memory_int| ULTIMATE.start_main_p4)) (.cse4 (select |#memory_int| ULTIMATE.start_main_p1))) (let ((.cse0 (= .cse4 0)) (.cse1 (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))) (.cse2 (= .cse3 0))) (or (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) .cse0 (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) .cse1 .cse2) (and (= (- 1) (select |#memory_int| v_prenex_59)) (= 0 (select |#memory_int| v_prenex_55)) (= .cse3 1) .cse0 (not (= v_prenex_55 ULTIMATE.start_main_p1))) (and (= (- 1) (select |#memory_int| v_prenex_61)) .cse0 (= 1 (select |#memory_int| v_prenex_57)) .cse1 .cse2) (and (= .cse4 1) (not (= v_prenex_56 ULTIMATE.start_main_p4)) (= (select |#memory_int| v_prenex_63) (- 1)) .cse2 (= (select |#memory_int| v_prenex_56) 0))))) [2019-01-31 14:49:19,866 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:19,867 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 55 treesize of output 57 [2019-01-31 14:49:19,870 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:19,956 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:19,957 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:19,959 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:19,960 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:19,961 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:19,962 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:19,963 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:19,964 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:19,965 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:19,966 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:19,967 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:49:19,968 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 37 treesize of output 82 [2019-01-31 14:49:19,971 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:20,059 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:20,061 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:20,062 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:20,063 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:20,064 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:20,066 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:20,067 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:20,068 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:20,069 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:20,069 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:49:20,070 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 37 treesize of output 73 [2019-01-31 14:49:20,073 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:20,155 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:20,156 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:20,157 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:20,159 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:20,160 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:20,161 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:20,162 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:20,163 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:20,164 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:20,165 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:49:20,165 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 37 treesize of output 72 [2019-01-31 14:49:20,169 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:20,249 INFO L267 ElimStorePlain]: Start of recursive call 1: 12 dim-0 vars, 4 dim-1 vars, End of recursive call: 12 dim-0 vars, and 4 xjuncts. [2019-01-31 14:49:20,249 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 16 variables, input treesize:167, output treesize:123 [2019-01-31 14:49:30,212 WARN L194 Executor]: External (z3 SMTLIB2_COMPLIANT=true -memory:8092 -smt2 -in -t:10000) stderr output: (error "out of memory") [2019-01-31 14:49:30,413 WARN L521 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 26 z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:49:30,415 FATAL L265 ToolchainWalker]: An unrecoverable error occured during an interaction with an SMT solver: de.uni_freiburg.informatik.ultimate.logic.SMTLIBException: External (z3 SMTLIB2_COMPLIANT=true -memory:8092 -smt2 -in -t:10000)Received EOF on stdin. stderr output: (error "out of memory") at de.uni_freiburg.informatik.ultimate.smtsolver.external.Executor.parse(Executor.java:208) at de.uni_freiburg.informatik.ultimate.smtsolver.external.Executor.parseCheckSatResult(Executor.java:225) at de.uni_freiburg.informatik.ultimate.smtsolver.external.Scriptor.checkSat(Scriptor.java:155) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.WrapperScript.checkSat(WrapperScript.java:116) at de.uni_freiburg.informatik.ultimate.logic.Util.checkSat(Util.java:61) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.EliminationTask.areDistinct(EliminationTask.java:106) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.PartialQuantifierElimination.validateEquivalence(PartialQuantifierElimination.java:395) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.PartialQuantifierElimination.elim(PartialQuantifierElimination.java:308) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.PartialQuantifierElimination.tryToEliminate(PartialQuantifierElimination.java:102) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.predicates.IterativePredicateTransformer$QuantifierEliminationPostprocessor.postprocess(IterativePredicateTransformer.java:245) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.predicates.IterativePredicateTransformer.applyPostprocessors(IterativePredicateTransformer.java:439) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.predicates.IterativePredicateTransformer.computeStrongestPostconditionSequence(IterativePredicateTransformer.java:200) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.singletracecheck.TraceCheckSpWp.computeInterpolantsUsingUnsatCore(TraceCheckSpWp.java:286) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.singletracecheck.TraceCheckSpWp.computeInterpolants(TraceCheckSpWp.java:175) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.singletracecheck.TraceCheckSpWp.(TraceCheckSpWp.java:162) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.TraceCheckConstructor.constructForwardBackward(TraceCheckConstructor.java:224) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.TraceCheckConstructor.constructTraceCheck(TraceCheckConstructor.java:188) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.TraceCheckConstructor.get(TraceCheckConstructor.java:165) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.BaseTaipanRefinementStrategy.getTraceCheck(BaseTaipanRefinementStrategy.java:215) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.BaseRefinementStrategy.checkFeasibility(BaseRefinementStrategy.java:223) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.BaseRefinementStrategy.executeStrategy(BaseRefinementStrategy.java:197) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.TraceAbstractionRefinementEngine.(TraceAbstractionRefinementEngine.java:70) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.BasicCegarLoop.isCounterexampleFeasible(BasicCegarLoop.java:456) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.AbstractCegarLoop.iterateInternal(AbstractCegarLoop.java:434) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.AbstractCegarLoop.iterate(AbstractCegarLoop.java:376) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.iterate(TraceAbstractionStarter.java:334) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.runCegarLoops(TraceAbstractionStarter.java:174) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.(TraceAbstractionStarter.java:126) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver.finish(TraceAbstractionObserver.java:123) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.runObserver(PluginConnector.java:168) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.runTool(PluginConnector.java:151) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.run(PluginConnector.java:128) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.executePluginConnector(ToolchainWalker.java:232) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.processPlugin(ToolchainWalker.java:226) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.walkUnprotected(ToolchainWalker.java:142) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.walk(ToolchainWalker.java:104) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainManager$Toolchain.processToolchain(ToolchainManager.java:316) at de.uni_freiburg.informatik.ultimate.core.coreplugin.toolchain.DefaultToolchainJob.run(DefaultToolchainJob.java:145) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) Caused by: de.uni_freiburg.informatik.ultimate.logic.SMTLIBException: EOF at de.uni_freiburg.informatik.ultimate.smtsolver.external.Parser$Action$.CUP$do_action(Parser.java:1427) at de.uni_freiburg.informatik.ultimate.smtsolver.external.Parser.do_action(Parser.java:630) at com.github.jhoenicke.javacup.runtime.LRParser.parse(LRParser.java:419) at de.uni_freiburg.informatik.ultimate.smtsolver.external.Executor.parse(Executor.java:205) ... 38 more [2019-01-31 14:49:30,421 INFO L168 Benchmark]: Toolchain (without parser) took 351586.87 ms. Allocated memory was 134.2 MB in the beginning and 264.2 MB in the end (delta: 130.0 MB). Free memory was 109.3 MB in the beginning and 102.5 MB in the end (delta: 6.8 MB). Peak memory consumption was 136.9 MB. Max. memory is 7.1 GB. [2019-01-31 14:49:30,422 INFO L168 Benchmark]: Boogie PL CUP Parser took 0.12 ms. Allocated memory is still 134.2 MB. Free memory is still 110.7 MB. There was no memory consumed. Max. memory is 7.1 GB. [2019-01-31 14:49:30,422 INFO L168 Benchmark]: Boogie Procedure Inliner took 67.18 ms. Allocated memory is still 134.2 MB. Free memory was 109.3 MB in the beginning and 106.8 MB in the end (delta: 2.5 MB). Peak memory consumption was 2.5 MB. Max. memory is 7.1 GB. [2019-01-31 14:49:30,422 INFO L168 Benchmark]: Boogie Preprocessor took 37.48 ms. Allocated memory is still 134.2 MB. Free memory was 106.8 MB in the beginning and 105.6 MB in the end (delta: 1.3 MB). Peak memory consumption was 1.3 MB. Max. memory is 7.1 GB. [2019-01-31 14:49:30,422 INFO L168 Benchmark]: RCFGBuilder took 674.06 ms. Allocated memory is still 134.2 MB. Free memory was 105.6 MB in the beginning and 88.4 MB in the end (delta: 17.1 MB). Peak memory consumption was 17.1 MB. Max. memory is 7.1 GB. [2019-01-31 14:49:30,423 INFO L168 Benchmark]: TraceAbstraction took 350803.05 ms. Allocated memory was 134.2 MB in the beginning and 264.2 MB in the end (delta: 130.0 MB). Free memory was 88.2 MB in the beginning and 102.5 MB in the end (delta: -14.2 MB). Peak memory consumption was 115.8 MB. Max. memory is 7.1 GB. [2019-01-31 14:49:30,425 INFO L336 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - GenericResult: Assertions are enabled Assertions are enabled - StatisticsResult: Toolchain Benchmarks Benchmark results are: * Boogie PL CUP Parser took 0.12 ms. Allocated memory is still 134.2 MB. Free memory is still 110.7 MB. There was no memory consumed. Max. memory is 7.1 GB. * Boogie Procedure Inliner took 67.18 ms. Allocated memory is still 134.2 MB. Free memory was 109.3 MB in the beginning and 106.8 MB in the end (delta: 2.5 MB). Peak memory consumption was 2.5 MB. Max. memory is 7.1 GB. * Boogie Preprocessor took 37.48 ms. Allocated memory is still 134.2 MB. Free memory was 106.8 MB in the beginning and 105.6 MB in the end (delta: 1.3 MB). Peak memory consumption was 1.3 MB. Max. memory is 7.1 GB. * RCFGBuilder took 674.06 ms. Allocated memory is still 134.2 MB. Free memory was 105.6 MB in the beginning and 88.4 MB in the end (delta: 17.1 MB). Peak memory consumption was 17.1 MB. Max. memory is 7.1 GB. * TraceAbstraction took 350803.05 ms. Allocated memory was 134.2 MB in the beginning and 264.2 MB in the end (delta: 130.0 MB). Free memory was 88.2 MB in the beginning and 102.5 MB in the end (delta: -14.2 MB). Peak memory consumption was 115.8 MB. Max. memory is 7.1 GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - ExceptionOrErrorResult: SMTLIBException: External (z3 SMTLIB2_COMPLIANT=true -memory:8092 -smt2 -in -t:10000)Received EOF on stdin. stderr output: (error "out of memory") de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: SMTLIBException: External (z3 SMTLIB2_COMPLIANT=true -memory:8092 -smt2 -in -t:10000)Received EOF on stdin. stderr output: (error "out of memory") : de.uni_freiburg.informatik.ultimate.smtsolver.external.Executor.parse(Executor.java:208) RESULT: Ultimate could not prove your program: Toolchain returned no result. Received shutdown request...