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-f57a05f [2019-01-07 18:31:03,460 INFO L170 SettingsManager]: Resetting all preferences to default values... [2019-01-07 18:31:03,462 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2019-01-07 18:31:03,487 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2019-01-07 18:31:03,487 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2019-01-07 18:31:03,488 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2019-01-07 18:31:03,490 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2019-01-07 18:31:03,492 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2019-01-07 18:31:03,494 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2019-01-07 18:31:03,494 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2019-01-07 18:31:03,495 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2019-01-07 18:31:03,496 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2019-01-07 18:31:03,497 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2019-01-07 18:31:03,499 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2019-01-07 18:31:03,500 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2019-01-07 18:31:03,504 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2019-01-07 18:31:03,509 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2019-01-07 18:31:03,513 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2019-01-07 18:31:03,515 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2019-01-07 18:31:03,517 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2019-01-07 18:31:03,518 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2019-01-07 18:31:03,520 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2019-01-07 18:31:03,524 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2019-01-07 18:31:03,524 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2019-01-07 18:31:03,524 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2019-01-07 18:31:03,525 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2019-01-07 18:31:03,526 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2019-01-07 18:31:03,527 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2019-01-07 18:31:03,532 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2019-01-07 18:31:03,533 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2019-01-07 18:31:03,533 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2019-01-07 18:31:03,536 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2019-01-07 18:31:03,536 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2019-01-07 18:31:03,536 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2019-01-07 18:31:03,537 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2019-01-07 18:31:03,540 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2019-01-07 18:31:03,540 INFO L98 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/ai/array-bench/reach_32bit_compound_exp_cong.epf [2019-01-07 18:31:03,562 INFO L110 SettingsManager]: Loading preferences was successful [2019-01-07 18:31:03,562 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2019-01-07 18:31:03,564 INFO L131 SettingsManager]: Preferences of Boogie Preprocessor differ from their defaults: [2019-01-07 18:31:03,564 INFO L133 SettingsManager]: * Show backtranslation warnings=false [2019-01-07 18:31:03,564 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2019-01-07 18:31:03,567 INFO L133 SettingsManager]: * User list type=DISABLED [2019-01-07 18:31:03,567 INFO L133 SettingsManager]: * Inline calls to unimplemented procedures=true [2019-01-07 18:31:03,567 INFO L131 SettingsManager]: Preferences of Abstract Interpretation differ from their defaults: [2019-01-07 18:31:03,568 INFO L133 SettingsManager]: * Explicit value domain=true [2019-01-07 18:31:03,568 INFO L133 SettingsManager]: * Abstract domain for RCFG-of-the-future=PoormanAbstractDomain [2019-01-07 18:31:03,568 INFO L133 SettingsManager]: * Octagon Domain=false [2019-01-07 18:31:03,568 INFO L133 SettingsManager]: * Abstract domain=CompoundDomain [2019-01-07 18:31:03,568 INFO L133 SettingsManager]: * Check feasibility of abstract posts with an SMT solver=true [2019-01-07 18:31:03,569 INFO L133 SettingsManager]: * Interval Domain=false [2019-01-07 18:31:03,569 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2019-01-07 18:31:03,570 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2019-01-07 18:31:03,571 INFO L133 SettingsManager]: * Use SBE=true [2019-01-07 18:31:03,571 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2019-01-07 18:31:03,571 INFO L133 SettingsManager]: * sizeof long=4 [2019-01-07 18:31:03,572 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2019-01-07 18:31:03,572 INFO L133 SettingsManager]: * sizeof POINTER=4 [2019-01-07 18:31:03,572 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2019-01-07 18:31:03,572 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2019-01-07 18:31:03,572 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2019-01-07 18:31:03,572 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2019-01-07 18:31:03,574 INFO L133 SettingsManager]: * sizeof long double=12 [2019-01-07 18:31:03,574 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2019-01-07 18:31:03,574 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2019-01-07 18:31:03,575 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2019-01-07 18:31:03,575 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2019-01-07 18:31:03,575 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2019-01-07 18:31:03,575 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2019-01-07 18:31:03,576 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2019-01-07 18:31:03,576 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2019-01-07 18:31:03,577 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2019-01-07 18:31:03,577 INFO L133 SettingsManager]: * Trace refinement strategy=TAIPAN [2019-01-07 18:31:03,577 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2019-01-07 18:31:03,577 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2019-01-07 18:31:03,577 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2019-01-07 18:31:03,578 INFO L133 SettingsManager]: * Abstract interpretation Mode=USE_PREDICATES [2019-01-07 18:31:03,629 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2019-01-07 18:31:03,642 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2019-01-07 18:31:03,646 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2019-01-07 18:31:03,647 INFO L271 PluginConnector]: Initializing Boogie PL CUP Parser... [2019-01-07 18:31:03,648 INFO L276 PluginConnector]: Boogie PL CUP Parser initialized [2019-01-07 18:31:03,648 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-07 18:31:03,651 INFO L111 BoogieParser]: Parsing: '/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/programs/heapseparator/speedup-poc-dd-5-unlimited.bpl' [2019-01-07 18:31:03,701 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2019-01-07 18:31:03,703 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2019-01-07 18:31:03,704 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2019-01-07 18:31:03,704 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2019-01-07 18:31:03,704 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2019-01-07 18:31:03,724 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 07.01 06:31:03" (1/1) ... [2019-01-07 18:31:03,739 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 07.01 06:31:03" (1/1) ... [2019-01-07 18:31:03,782 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2019-01-07 18:31:03,783 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2019-01-07 18:31:03,784 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2019-01-07 18:31:03,784 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2019-01-07 18:31:03,797 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 07.01 06:31:03" (1/1) ... [2019-01-07 18:31:03,798 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 07.01 06:31:03" (1/1) ... [2019-01-07 18:31:03,799 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 07.01 06:31:03" (1/1) ... [2019-01-07 18:31:03,801 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 07.01 06:31:03" (1/1) ... [2019-01-07 18:31:03,805 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 07.01 06:31:03" (1/1) ... [2019-01-07 18:31:03,814 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 07.01 06:31:03" (1/1) ... [2019-01-07 18:31:03,820 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 07.01 06:31:03" (1/1) ... [2019-01-07 18:31:03,826 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2019-01-07 18:31:03,827 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2019-01-07 18:31:03,827 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2019-01-07 18:31:03,827 INFO L276 PluginConnector]: RCFGBuilder initialized [2019-01-07 18:31:03,830 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 07.01 06:31:03" (1/1) ... No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2019-01-07 18:31:03,904 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2019-01-07 18:31:03,904 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2019-01-07 18:31:04,487 INFO L281 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2019-01-07 18:31:04,488 INFO L286 CfgBuilder]: Removed 13 assue(true) statements. [2019-01-07 18:31:04,489 INFO L202 PluginConnector]: Adding new model speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 07.01 06:31:04 BoogieIcfgContainer [2019-01-07 18:31:04,489 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2019-01-07 18:31:04,490 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2019-01-07 18:31:04,490 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2019-01-07 18:31:04,494 INFO L276 PluginConnector]: TraceAbstraction initialized [2019-01-07 18:31:04,494 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 07.01 06:31:03" (1/2) ... [2019-01-07 18:31:04,495 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@31d7ab8e and model type speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 07.01 06:31:04, skipping insertion in model container [2019-01-07 18:31:04,495 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 07.01 06:31:04" (2/2) ... [2019-01-07 18:31:04,497 INFO L112 eAbstractionObserver]: Analyzing ICFG speedup-poc-dd-5-unlimited.bpl [2019-01-07 18:31:04,508 INFO L156 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2019-01-07 18:31:04,516 INFO L168 ceAbstractionStarter]: Appying trace abstraction to program that has 5 error locations. [2019-01-07 18:31:04,535 INFO L257 AbstractCegarLoop]: Starting to check reachability of 5 error locations. [2019-01-07 18:31:04,571 INFO L382 AbstractCegarLoop]: Interprodecural is true [2019-01-07 18:31:04,571 INFO L383 AbstractCegarLoop]: Hoare is true [2019-01-07 18:31:04,571 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2019-01-07 18:31:04,571 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2019-01-07 18:31:04,572 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2019-01-07 18:31:04,572 INFO L387 AbstractCegarLoop]: Difference is false [2019-01-07 18:31:04,572 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2019-01-07 18:31:04,572 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2019-01-07 18:31:04,588 INFO L276 IsEmpty]: Start isEmpty. Operand 13 states. [2019-01-07 18:31:04,594 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 3 [2019-01-07 18:31:04,594 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:31:04,595 INFO L402 BasicCegarLoop]: trace histogram [1, 1] [2019-01-07 18:31:04,598 INFO L423 AbstractCegarLoop]: === Iteration 1 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:31:04,604 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:31:04,605 INFO L82 PathProgramCache]: Analyzing trace with hash 984, now seen corresponding path program 1 times [2019-01-07 18:31:04,607 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:31:04,658 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:04,658 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:31:04,658 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:04,658 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:31:04,711 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:04,849 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-07 18:31:04,855 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-07 18:31:04,857 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:04,859 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-01-07 18:31:04,859 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [1] imperfect sequences [] total 1 [2019-01-07 18:31:04,859 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-07 18:31:04,864 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 2 [2019-01-07 18:31:04,866 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:31:04,870 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2019-01-07 18:31:04,890 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 2 edges. 2 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:31:04,890 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2019-01-07 18:31:04,898 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2019-01-07 18:31:04,898 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-07 18:31:04,900 INFO L87 Difference]: Start difference. First operand 13 states. Second operand 3 states. [2019-01-07 18:31:05,394 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:05,395 INFO L93 Difference]: Finished difference Result 25 states and 33 transitions. [2019-01-07 18:31:05,395 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-07 18:31:05,395 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 2 [2019-01-07 18:31:05,395 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:31:05,397 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-07 18:31:05,400 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 33 transitions. [2019-01-07 18:31:05,401 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-07 18:31:05,404 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 33 transitions. [2019-01-07 18:31:05,404 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 33 transitions. [2019-01-07 18:31:05,512 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 33 edges. 33 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:31:05,524 INFO L225 Difference]: With dead ends: 25 [2019-01-07 18:31:05,524 INFO L226 Difference]: Without dead ends: 20 [2019-01-07 18:31:05,528 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 1 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-07 18:31:05,550 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 20 states. [2019-01-07 18:31:05,603 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 20 to 12. [2019-01-07 18:31:05,603 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:31:05,604 INFO L82 GeneralOperation]: Start isEquivalent. First operand 20 states. Second operand 12 states. [2019-01-07 18:31:05,605 INFO L74 IsIncluded]: Start isIncluded. First operand 20 states. Second operand 12 states. [2019-01-07 18:31:05,605 INFO L87 Difference]: Start difference. First operand 20 states. Second operand 12 states. [2019-01-07 18:31:05,609 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:05,610 INFO L93 Difference]: Finished difference Result 20 states and 28 transitions. [2019-01-07 18:31:05,610 INFO L276 IsEmpty]: Start isEmpty. Operand 20 states and 28 transitions. [2019-01-07 18:31:05,611 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:05,611 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:05,611 INFO L74 IsIncluded]: Start isIncluded. First operand 12 states. Second operand 20 states. [2019-01-07 18:31:05,612 INFO L87 Difference]: Start difference. First operand 12 states. Second operand 20 states. [2019-01-07 18:31:05,615 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:05,615 INFO L93 Difference]: Finished difference Result 20 states and 28 transitions. [2019-01-07 18:31:05,616 INFO L276 IsEmpty]: Start isEmpty. Operand 20 states and 28 transitions. [2019-01-07 18:31:05,616 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:05,616 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:05,617 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:31:05,617 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:31:05,617 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-07 18:31:05,619 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 21 transitions. [2019-01-07 18:31:05,621 INFO L78 Accepts]: Start accepts. Automaton has 12 states and 21 transitions. Word has length 2 [2019-01-07 18:31:05,622 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:31:05,622 INFO L480 AbstractCegarLoop]: Abstraction has 12 states and 21 transitions. [2019-01-07 18:31:05,622 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2019-01-07 18:31:05,623 INFO L276 IsEmpty]: Start isEmpty. Operand 12 states and 21 transitions. [2019-01-07 18:31:05,623 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-07 18:31:05,623 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:31:05,624 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-07 18:31:05,624 INFO L423 AbstractCegarLoop]: === Iteration 2 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:31:05,624 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:31:05,625 INFO L82 PathProgramCache]: Analyzing trace with hash 30372, now seen corresponding path program 1 times [2019-01-07 18:31:05,625 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:31:05,626 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:05,626 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:31:05,626 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:05,627 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:31:05,655 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:06,025 WARN L181 SmtUtils]: Spent 169.00 ms on a formula simplification. DAG size of input: 16 DAG size of output: 13 [2019-01-07 18:31:06,065 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-07 18:31:06,066 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-07 18:31:06,080 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-07 18:31:06,081 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:06,081 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:31:06,081 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:31:06,082 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-01-07 18:31:06,084 INFO L207 CegarAbsIntRunner]: [0], [18], [23] [2019-01-07 18:31:06,127 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:31:06,127 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:31:06,226 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:31:06,228 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-07 18:31:06,233 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:31:06,235 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:31:06,235 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:31:06,235 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:31:06,250 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:31:06,250 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:31:06,271 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:06,291 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:06,296 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:31:06,556 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:06,566 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-07 18:31:06,799 WARN L181 SmtUtils]: Spent 143.00 ms on a formula simplification. DAG size of input: 24 DAG size of output: 20 [2019-01-07 18:31:06,846 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:06,859 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:06,861 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-07 18:31:07,229 WARN L181 SmtUtils]: Spent 123.00 ms on a formula simplification. DAG size of input: 26 DAG size of output: 20 [2019-01-07 18:31:07,258 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:07,260 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:07,261 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:07,264 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:07,267 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-07 18:31:07,274 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:07,303 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:07,318 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:07,347 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-07 18:31:07,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, 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-07 18:31:07,385 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-07 18:31:07,523 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-07 18:31:07,567 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-07 18:31:07,577 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:07,605 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:07,624 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:07,648 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:07,664 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:07,703 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-07 18:31:07,703 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 5 variables, input treesize:52, output treesize:50 [2019-01-07 18:31:07,714 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:07,714 WARN L385 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-07 18:31:07,714 WARN L386 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-07 18:31:07,900 WARN L181 SmtUtils]: Spent 155.00 ms on a formula simplification. DAG size of input: 33 DAG size of output: 29 [2019-01-07 18:31:08,068 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:08,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, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 18:31:08,073 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:08,138 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:31:08,139 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:55, output treesize:33 [2019-01-07 18:31:08,150 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:08,151 WARN L385 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-07 18:31:08,151 WARN L386 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-07 18:31:08,326 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-07 18:31:08,342 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-07 18:31:08,356 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-07 18:31:08,357 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:08,357 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:31:08,542 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-07 18:31:08,545 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-07 18:31:08,547 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-07 18:31:08,547 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:08,569 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:31:08,569 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-07 18:31:08,569 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:31:08,570 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-07 18:31:08,571 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:31:08,571 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-07 18:31:08,636 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 6 edges. 6 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:31:08,636 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-07 18:31:08,636 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-07 18:31:08,636 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-07 18:31:08,637 INFO L87 Difference]: Start difference. First operand 12 states and 21 transitions. Second operand 6 states. [2019-01-07 18:31:08,851 WARN L181 SmtUtils]: Spent 112.00 ms on a formula simplification. DAG size of input: 33 DAG size of output: 31 [2019-01-07 18:31:09,284 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:09,285 INFO L93 Difference]: Finished difference Result 39 states and 56 transitions. [2019-01-07 18:31:09,285 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-07 18:31:09,285 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-07 18:31:09,285 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:31:09,285 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-07 18:31:09,287 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 56 transitions. [2019-01-07 18:31:09,288 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-07 18:31:09,290 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 56 transitions. [2019-01-07 18:31:09,290 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 56 transitions. [2019-01-07 18:31:09,405 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 56 edges. 56 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:31:09,409 INFO L225 Difference]: With dead ends: 39 [2019-01-07 18:31:09,409 INFO L226 Difference]: Without dead ends: 37 [2019-01-07 18:31:09,410 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 7 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 1.0s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-01-07 18:31:09,411 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 37 states. [2019-01-07 18:31:09,433 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 37 to 16. [2019-01-07 18:31:09,433 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:31:09,434 INFO L82 GeneralOperation]: Start isEquivalent. First operand 37 states. Second operand 16 states. [2019-01-07 18:31:09,434 INFO L74 IsIncluded]: Start isIncluded. First operand 37 states. Second operand 16 states. [2019-01-07 18:31:09,434 INFO L87 Difference]: Start difference. First operand 37 states. Second operand 16 states. [2019-01-07 18:31:09,437 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:09,437 INFO L93 Difference]: Finished difference Result 37 states and 53 transitions. [2019-01-07 18:31:09,437 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 53 transitions. [2019-01-07 18:31:09,438 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:09,438 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:09,438 INFO L74 IsIncluded]: Start isIncluded. First operand 16 states. Second operand 37 states. [2019-01-07 18:31:09,438 INFO L87 Difference]: Start difference. First operand 16 states. Second operand 37 states. [2019-01-07 18:31:09,442 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:09,442 INFO L93 Difference]: Finished difference Result 37 states and 53 transitions. [2019-01-07 18:31:09,442 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 53 transitions. [2019-01-07 18:31:09,443 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:09,443 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:09,443 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:31:09,443 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:31:09,444 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 16 states. [2019-01-07 18:31:09,445 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 32 transitions. [2019-01-07 18:31:09,445 INFO L78 Accepts]: Start accepts. Automaton has 16 states and 32 transitions. Word has length 3 [2019-01-07 18:31:09,446 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:31:09,446 INFO L480 AbstractCegarLoop]: Abstraction has 16 states and 32 transitions. [2019-01-07 18:31:09,446 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-07 18:31:09,446 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 32 transitions. [2019-01-07 18:31:09,446 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-07 18:31:09,447 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:31:09,447 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-07 18:31:09,447 INFO L423 AbstractCegarLoop]: === Iteration 3 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:31:09,447 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:31:09,448 INFO L82 PathProgramCache]: Analyzing trace with hash 30434, now seen corresponding path program 1 times [2019-01-07 18:31:09,448 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:31:09,449 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:09,449 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:31:09,449 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:09,449 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:31:09,460 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:09,561 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-07 18:31:09,562 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-07 18:31:09,563 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-07 18:31:09,564 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:09,564 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:31:09,565 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:31:09,565 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-01-07 18:31:09,565 INFO L207 CegarAbsIntRunner]: [0], [20], [23] [2019-01-07 18:31:09,567 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:31:09,568 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:31:09,583 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:31:09,583 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-07 18:31:09,584 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:31:09,584 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:31:09,584 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:31:09,584 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:31:09,594 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:31:09,595 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:31:09,615 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:09,633 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:09,634 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:31:09,705 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:09,707 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-07 18:31:09,783 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:09,793 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:09,794 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-07 18:31:09,876 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:09,878 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:09,880 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:09,887 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:09,888 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-07 18:31:09,893 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:09,917 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:09,989 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:10,016 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-07 18:31:10,035 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-07 18:31:10,053 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-07 18:31:10,098 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-07 18:31:10,128 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-07 18:31:10,138 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:10,160 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:10,177 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:10,208 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:10,219 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:10,264 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-07 18:31:10,265 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 5 variables, input treesize:52, output treesize:50 [2019-01-07 18:31:10,281 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:10,282 WARN L385 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-07 18:31:10,282 WARN L386 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-07 18:31:10,510 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:10,567 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-07 18:31:10,582 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 16 xjuncts. [2019-01-07 18:31:10,911 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-07 18:31:10,912 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:60, output treesize:199 [2019-01-07 18:31:13,157 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:13,158 WARN L385 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-07 18:31:13,158 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_10, v_prenex_11, v_prenex_9, v_prenex_12, v_prenex_3, v_prenex_1, v_prenex_2, ULTIMATE.start_main_p5, v_prenex_8, v_prenex_7, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, v_prenex_6, v_prenex_4, v_prenex_5]. (let ((.cse0 (select |#memory_int| ULTIMATE.start_main_p1))) (let ((.cse1 (= .cse0 0))) (or (and (not (= v_prenex_3 v_prenex_1)) (= .cse0 1) (not (= v_prenex_3 v_prenex_2)) (not (= v_prenex_2 v_prenex_1)) (= 0 (select |#memory_int| v_prenex_2)) (not (= v_prenex_3 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_3) 0) (not (= ULTIMATE.start_main_p1 v_prenex_1)) (= (select |#memory_int| v_prenex_1) 0)) (and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= v_prenex_8 v_prenex_7)) .cse1 (not (= v_prenex_7 ULTIMATE.start_main_p1)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| v_prenex_7)) (not (= v_prenex_8 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_8) 0)) (and (not (= v_prenex_10 v_prenex_11)) (not (= v_prenex_10 v_prenex_9)) .cse1 (not (= v_prenex_9 ULTIMATE.start_main_p1)) (not (= v_prenex_9 v_prenex_11)) (= 1 (select |#memory_int| v_prenex_12)) (= 0 (select |#memory_int| v_prenex_9)) (not (= v_prenex_10 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_10) 0) (not (= ULTIMATE.start_main_p1 v_prenex_11)) (= (select |#memory_int| v_prenex_11) 0)) (and .cse1 (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_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))) (and (not (= v_prenex_6 v_prenex_4)) (= 1 (select |#memory_int| v_prenex_5)) .cse1 (not (= v_prenex_6 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_6) 0) (= (select |#memory_int| v_prenex_4) 0) (not (= ULTIMATE.start_main_p1 v_prenex_4)))))) [2019-01-07 18:31:15,640 WARN L181 SmtUtils]: Spent 2.35 s on a formula simplification. DAG size of input: 121 DAG size of output: 49 [2019-01-07 18:31:15,653 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-07 18:31:15,657 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) 0) (exists ((v_prenex_5 Int)) (= 1 (select |#memory_int| v_prenex_5))) (exists ((v_prenex_6 Int) (v_prenex_4 Int)) (and (not (= v_prenex_6 ULTIMATE.start_main_p1)) (not (= v_prenex_6 v_prenex_4)) (= (select |#memory_int| v_prenex_6) 0) (= (select |#memory_int| v_prenex_4) 0) (not (= ULTIMATE.start_main_p1 v_prenex_4))))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_2 Int) (v_prenex_3 Int) (v_prenex_1 Int)) (and (not (= ULTIMATE.start_main_p1 v_prenex_1)) (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_3 ULTIMATE.start_main_p1)) (not (= v_prenex_2 v_prenex_1))))))} is VALID [2019-01-07 18:31:15,659 INFO L273 TraceCheckUtils]: 2: Hoare triple {273#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_5 Int)) (= 1 (select |#memory_int| v_prenex_5))) (exists ((v_prenex_6 Int) (v_prenex_4 Int)) (and (not (= v_prenex_6 ULTIMATE.start_main_p1)) (not (= v_prenex_6 v_prenex_4)) (= (select |#memory_int| v_prenex_6) 0) (= (select |#memory_int| v_prenex_4) 0) (not (= ULTIMATE.start_main_p1 v_prenex_4))))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_2 Int) (v_prenex_3 Int) (v_prenex_1 Int)) (and (not (= ULTIMATE.start_main_p1 v_prenex_1)) (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_3 ULTIMATE.start_main_p1)) (not (= v_prenex_2 v_prenex_1))))))} assume !(#memory_int[main_p1] >= 0); {263#false} is VALID [2019-01-07 18:31:15,660 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:15,660 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:31:15,681 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-07 18:31:15,683 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-07 18:31:15,685 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-07 18:31:15,685 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:15,705 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-01-07 18:31:15,706 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 5 [2019-01-07 18:31:15,706 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-07 18:31:15,706 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 3 [2019-01-07 18:31:15,706 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:31:15,706 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-07 18:31:15,712 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 3 edges. 3 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:31:15,713 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-07 18:31:15,713 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-07 18:31:15,713 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=19, Invalid=23, Unknown=0, NotChecked=0, Total=42 [2019-01-07 18:31:15,714 INFO L87 Difference]: Start difference. First operand 16 states and 32 transitions. Second operand 4 states. [2019-01-07 18:31:15,829 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:15,829 INFO L93 Difference]: Finished difference Result 18 states and 39 transitions. [2019-01-07 18:31:15,829 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-07 18:31:15,830 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 3 [2019-01-07 18:31:15,830 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:31:15,830 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-07 18:31:15,831 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 22 transitions. [2019-01-07 18:31:15,831 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-07 18:31:15,832 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 22 transitions. [2019-01-07 18:31:15,832 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 22 transitions. [2019-01-07 18:31:15,888 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-07 18:31:15,890 INFO L225 Difference]: With dead ends: 18 [2019-01-07 18:31:15,890 INFO L226 Difference]: Without dead ends: 17 [2019-01-07 18:31:15,891 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 6 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 5 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 8 ImplicationChecksByTransitivity, 2.6s TimeCoverageRelationStatistics Valid=19, Invalid=23, Unknown=0, NotChecked=0, Total=42 [2019-01-07 18:31:15,891 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 17 states. [2019-01-07 18:31:15,918 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 17 to 17. [2019-01-07 18:31:15,918 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:31:15,918 INFO L82 GeneralOperation]: Start isEquivalent. First operand 17 states. Second operand 17 states. [2019-01-07 18:31:15,919 INFO L74 IsIncluded]: Start isIncluded. First operand 17 states. Second operand 17 states. [2019-01-07 18:31:15,919 INFO L87 Difference]: Start difference. First operand 17 states. Second operand 17 states. [2019-01-07 18:31:15,921 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:15,921 INFO L93 Difference]: Finished difference Result 17 states and 38 transitions. [2019-01-07 18:31:15,922 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 38 transitions. [2019-01-07 18:31:15,922 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:15,922 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:15,922 INFO L74 IsIncluded]: Start isIncluded. First operand 17 states. Second operand 17 states. [2019-01-07 18:31:15,923 INFO L87 Difference]: Start difference. First operand 17 states. Second operand 17 states. [2019-01-07 18:31:15,925 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:15,925 INFO L93 Difference]: Finished difference Result 17 states and 38 transitions. [2019-01-07 18:31:15,925 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 38 transitions. [2019-01-07 18:31:15,926 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:15,926 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:15,926 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:31:15,926 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:31:15,926 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 17 states. [2019-01-07 18:31:15,928 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 38 transitions. [2019-01-07 18:31:15,928 INFO L78 Accepts]: Start accepts. Automaton has 17 states and 38 transitions. Word has length 3 [2019-01-07 18:31:15,929 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:31:15,929 INFO L480 AbstractCegarLoop]: Abstraction has 17 states and 38 transitions. [2019-01-07 18:31:15,929 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-07 18:31:15,929 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 38 transitions. [2019-01-07 18:31:15,929 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-07 18:31:15,930 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:31:15,930 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-07 18:31:15,930 INFO L423 AbstractCegarLoop]: === Iteration 4 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:31:15,930 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:31:15,931 INFO L82 PathProgramCache]: Analyzing trace with hash 30560, now seen corresponding path program 1 times [2019-01-07 18:31:15,931 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:31:15,932 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:15,932 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:31:15,932 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:15,932 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:31:15,940 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:16,043 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-07 18:31:16,054 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-07 18:31:16,069 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-07 18:31:16,069 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:16,070 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-01-07 18:31:16,070 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [1] imperfect sequences [] total 1 [2019-01-07 18:31:16,070 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-07 18:31:16,070 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 3 [2019-01-07 18:31:16,071 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:31:16,071 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2019-01-07 18:31:16,090 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 3 edges. 3 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:31:16,090 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2019-01-07 18:31:16,090 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2019-01-07 18:31:16,090 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-07 18:31:16,091 INFO L87 Difference]: Start difference. First operand 17 states and 38 transitions. Second operand 3 states. [2019-01-07 18:31:16,187 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:16,188 INFO L93 Difference]: Finished difference Result 21 states and 39 transitions. [2019-01-07 18:31:16,188 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-07 18:31:16,188 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 3 [2019-01-07 18:31:16,189 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:31:16,189 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-07 18:31:16,190 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 27 transitions. [2019-01-07 18:31:16,190 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-07 18:31:16,191 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 27 transitions. [2019-01-07 18:31:16,191 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 27 transitions. [2019-01-07 18:31:16,250 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 27 edges. 27 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:31:16,252 INFO L225 Difference]: With dead ends: 21 [2019-01-07 18:31:16,252 INFO L226 Difference]: Without dead ends: 20 [2019-01-07 18:31:16,253 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 1 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-07 18:31:16,253 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 20 states. [2019-01-07 18:31:16,279 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 20 to 17. [2019-01-07 18:31:16,279 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:31:16,280 INFO L82 GeneralOperation]: Start isEquivalent. First operand 20 states. Second operand 17 states. [2019-01-07 18:31:16,280 INFO L74 IsIncluded]: Start isIncluded. First operand 20 states. Second operand 17 states. [2019-01-07 18:31:16,280 INFO L87 Difference]: Start difference. First operand 20 states. Second operand 17 states. [2019-01-07 18:31:16,283 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:16,283 INFO L93 Difference]: Finished difference Result 20 states and 38 transitions. [2019-01-07 18:31:16,284 INFO L276 IsEmpty]: Start isEmpty. Operand 20 states and 38 transitions. [2019-01-07 18:31:16,284 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:16,284 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:16,285 INFO L74 IsIncluded]: Start isIncluded. First operand 17 states. Second operand 20 states. [2019-01-07 18:31:16,285 INFO L87 Difference]: Start difference. First operand 17 states. Second operand 20 states. [2019-01-07 18:31:16,287 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:16,287 INFO L93 Difference]: Finished difference Result 20 states and 38 transitions. [2019-01-07 18:31:16,287 INFO L276 IsEmpty]: Start isEmpty. Operand 20 states and 38 transitions. [2019-01-07 18:31:16,287 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:16,288 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:16,288 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:31:16,288 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:31:16,288 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 17 states. [2019-01-07 18:31:16,289 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 37 transitions. [2019-01-07 18:31:16,290 INFO L78 Accepts]: Start accepts. Automaton has 17 states and 37 transitions. Word has length 3 [2019-01-07 18:31:16,290 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:31:16,290 INFO L480 AbstractCegarLoop]: Abstraction has 17 states and 37 transitions. [2019-01-07 18:31:16,290 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2019-01-07 18:31:16,290 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 37 transitions. [2019-01-07 18:31:16,291 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-07 18:31:16,291 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:31:16,291 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-07 18:31:16,291 INFO L423 AbstractCegarLoop]: === Iteration 5 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:31:16,292 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:31:16,292 INFO L82 PathProgramCache]: Analyzing trace with hash 30124, now seen corresponding path program 1 times [2019-01-07 18:31:16,292 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:31:16,293 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:16,293 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:31:16,293 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:16,293 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:31:16,308 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:16,434 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-07 18:31:16,436 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-07 18:31:16,437 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-07 18:31:16,437 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:16,437 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:31:16,438 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:31:16,438 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-01-07 18:31:16,438 INFO L207 CegarAbsIntRunner]: [0], [10], [23] [2019-01-07 18:31:16,441 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:31:16,441 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:31:16,453 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:31:16,453 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-07 18:31:16,454 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:31:16,454 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:31:16,454 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:31:16,454 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:31:16,465 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:31:16,465 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:31:16,474 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:16,478 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:16,478 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:31:16,530 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-07 18:31:16,540 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-07 18:31:16,557 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:16,559 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:16,560 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-07 18:31:16,585 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:16,587 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:16,589 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:16,591 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-07 18:31:16,619 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-07 18:31:16,627 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:16,650 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:16,683 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:16,697 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:16,710 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:16,740 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:16,742 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-07 18:31:16,898 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:16,900 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:16,901 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-07 18:31:16,977 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:16,978 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:16,979 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:16,980 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:16,982 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-07 18:31:16,985 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:16,998 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:17,010 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:17,050 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-07 18:31:17,051 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 5 variables, input treesize:52, output treesize:50 [2019-01-07 18:31:17,063 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:17,063 WARN L385 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-07 18:31:17,063 WARN L386 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-07 18:31:17,182 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:17,184 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:31:17,194 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:17,222 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:31:17,223 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:55, output treesize:33 [2019-01-07 18:31:17,230 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:17,231 WARN L385 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-07 18:31:17,231 WARN L386 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-07 18:31:17,376 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-07 18:31:17,386 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-07 18:31:17,399 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-07 18:31:17,400 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:17,400 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:31:17,432 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-07 18:31:17,434 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-07 18:31:17,436 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-07 18:31:17,437 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:17,458 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:31:17,458 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-07 18:31:17,458 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:31:17,459 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-07 18:31:17,459 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:31:17,459 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-07 18:31:17,489 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 6 edges. 6 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:31:17,489 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-07 18:31:17,489 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-07 18:31:17,490 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-07 18:31:17,490 INFO L87 Difference]: Start difference. First operand 17 states and 37 transitions. Second operand 6 states. [2019-01-07 18:31:18,089 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:18,089 INFO L93 Difference]: Finished difference Result 39 states and 66 transitions. [2019-01-07 18:31:18,089 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-07 18:31:18,089 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-07 18:31:18,090 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:31:18,090 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-07 18:31:18,091 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 54 transitions. [2019-01-07 18:31:18,091 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-07 18:31:18,092 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 54 transitions. [2019-01-07 18:31:18,092 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 54 transitions. [2019-01-07 18:31:18,192 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 54 edges. 54 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:31:18,194 INFO L225 Difference]: With dead ends: 39 [2019-01-07 18:31:18,195 INFO L226 Difference]: Without dead ends: 38 [2019-01-07 18:31:18,195 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 7 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-01-07 18:31:18,196 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 38 states. [2019-01-07 18:31:18,368 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 38 to 18. [2019-01-07 18:31:18,368 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:31:18,368 INFO L82 GeneralOperation]: Start isEquivalent. First operand 38 states. Second operand 18 states. [2019-01-07 18:31:18,369 INFO L74 IsIncluded]: Start isIncluded. First operand 38 states. Second operand 18 states. [2019-01-07 18:31:18,369 INFO L87 Difference]: Start difference. First operand 38 states. Second operand 18 states. [2019-01-07 18:31:18,371 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:18,371 INFO L93 Difference]: Finished difference Result 38 states and 64 transitions. [2019-01-07 18:31:18,371 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 64 transitions. [2019-01-07 18:31:18,372 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:18,372 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:18,372 INFO L74 IsIncluded]: Start isIncluded. First operand 18 states. Second operand 38 states. [2019-01-07 18:31:18,372 INFO L87 Difference]: Start difference. First operand 18 states. Second operand 38 states. [2019-01-07 18:31:18,375 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:18,375 INFO L93 Difference]: Finished difference Result 38 states and 64 transitions. [2019-01-07 18:31:18,375 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 64 transitions. [2019-01-07 18:31:18,376 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:18,376 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:18,376 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:31:18,376 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:31:18,376 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 18 states. [2019-01-07 18:31:18,378 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 43 transitions. [2019-01-07 18:31:18,378 INFO L78 Accepts]: Start accepts. Automaton has 18 states and 43 transitions. Word has length 3 [2019-01-07 18:31:18,378 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:31:18,378 INFO L480 AbstractCegarLoop]: Abstraction has 18 states and 43 transitions. [2019-01-07 18:31:18,378 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-07 18:31:18,379 INFO L276 IsEmpty]: Start isEmpty. Operand 18 states and 43 transitions. [2019-01-07 18:31:18,379 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-07 18:31:18,379 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:31:18,379 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-07 18:31:18,380 INFO L423 AbstractCegarLoop]: === Iteration 6 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:31:18,380 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:31:18,380 INFO L82 PathProgramCache]: Analyzing trace with hash 941462, now seen corresponding path program 1 times [2019-01-07 18:31:18,380 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:31:18,381 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:18,381 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:31:18,382 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:18,382 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:31:18,394 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:18,508 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-07 18:31:18,509 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-07 18:31:18,511 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-07 18:31:18,512 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-07 18:31:18,513 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:18,513 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:31:18,513 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:31:18,513 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-07 18:31:18,514 INFO L207 CegarAbsIntRunner]: [0], [18], [20], [23] [2019-01-07 18:31:18,515 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:31:18,515 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:31:18,532 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:31:18,532 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-07 18:31:18,533 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:31:18,533 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:31:18,533 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:31:18,533 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:31:18,542 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:31:18,542 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:31:18,548 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:18,557 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:18,557 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:31:18,710 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-07 18:31:18,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, 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-07 18:31:18,739 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:18,740 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:18,741 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-07 18:31:18,861 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:18,867 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:18,876 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:18,877 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-07 18:31:18,917 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-07 18:31:18,934 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:18,966 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:18,986 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:19,002 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:19,040 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:19,067 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:19,067 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-07 18:31:19,110 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:19,111 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:19,112 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-07 18:31:19,159 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:19,161 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:19,162 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:19,163 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:19,164 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-07 18:31:19,166 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:19,177 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:19,186 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:19,215 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-07 18:31:19,215 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:52, output treesize:50 [2019-01-07 18:31:19,222 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:19,223 WARN L385 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-07 18:31:19,223 WARN L386 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-07 18:31:19,327 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:19,336 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-07 18:31:19,340 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 2 xjuncts. [2019-01-07 18:31:19,415 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-07 18:31:19,415 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:60, output treesize:74 [2019-01-07 18:31:19,552 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:19,552 WARN L385 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-07 18:31:19,552 WARN L386 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-07 18:31:19,735 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:19,736 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:19,737 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:19,737 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:19,745 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:19,747 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:19,748 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:19,775 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-07 18:31:19,781 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 8 xjuncts. [2019-01-07 18:31:20,003 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:20,027 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:20,032 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:20,036 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:20,038 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:20,038 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:31:20,039 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 45 treesize of output 51 [2019-01-07 18:31:20,041 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:20,199 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-07 18:31:20,199 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 9 variables, input treesize:96, output treesize:167 [2019-01-07 18:31:22,508 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:22,508 WARN L385 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-07 18:31:22,508 WARN L386 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-07 18:31:22,705 WARN L181 SmtUtils]: Spent 156.00 ms on a formula simplification. DAG size of input: 106 DAG size of output: 65 [2019-01-07 18:31:22,748 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-07 18:31:22,750 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-07 18:31:22,756 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-07 18:31:22,757 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-07 18:31:22,758 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:22,758 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:31:22,805 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-07 18:31:22,806 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-07 18:31:22,807 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-07 18:31:22,810 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-07 18:31:22,810 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:22,830 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:31:22,830 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 18:31:22,830 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:31:22,831 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 18:31:22,831 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:31:22,831 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:31:22,847 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:31:22,847 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:31:22,848 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:31:22,848 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=41, Invalid=69, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:31:22,848 INFO L87 Difference]: Start difference. First operand 18 states and 43 transitions. Second operand 8 states. [2019-01-07 18:31:24,101 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:24,101 INFO L93 Difference]: Finished difference Result 59 states and 105 transitions. [2019-01-07 18:31:24,102 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 18:31:24,102 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 18:31:24,102 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:31:24,102 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:31:24,103 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 81 transitions. [2019-01-07 18:31:24,103 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:31:24,105 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 81 transitions. [2019-01-07 18:31:24,105 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 81 transitions. [2019-01-07 18:31:24,282 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-07 18:31:24,285 INFO L225 Difference]: With dead ends: 59 [2019-01-07 18:31:24,285 INFO L226 Difference]: Without dead ends: 55 [2019-01-07 18:31:24,286 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-07 18:31:24,286 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 55 states. [2019-01-07 18:31:24,436 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 55 to 20. [2019-01-07 18:31:24,436 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:31:24,436 INFO L82 GeneralOperation]: Start isEquivalent. First operand 55 states. Second operand 20 states. [2019-01-07 18:31:24,437 INFO L74 IsIncluded]: Start isIncluded. First operand 55 states. Second operand 20 states. [2019-01-07 18:31:24,437 INFO L87 Difference]: Start difference. First operand 55 states. Second operand 20 states. [2019-01-07 18:31:24,439 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:24,439 INFO L93 Difference]: Finished difference Result 55 states and 99 transitions. [2019-01-07 18:31:24,440 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 99 transitions. [2019-01-07 18:31:24,440 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:24,440 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:24,440 INFO L74 IsIncluded]: Start isIncluded. First operand 20 states. Second operand 55 states. [2019-01-07 18:31:24,441 INFO L87 Difference]: Start difference. First operand 20 states. Second operand 55 states. [2019-01-07 18:31:24,443 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:24,444 INFO L93 Difference]: Finished difference Result 55 states and 99 transitions. [2019-01-07 18:31:24,444 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 99 transitions. [2019-01-07 18:31:24,444 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:24,445 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:24,445 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:31:24,445 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:31:24,445 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 20 states. [2019-01-07 18:31:24,446 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 59 transitions. [2019-01-07 18:31:24,446 INFO L78 Accepts]: Start accepts. Automaton has 20 states and 59 transitions. Word has length 4 [2019-01-07 18:31:24,447 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:31:24,447 INFO L480 AbstractCegarLoop]: Abstraction has 20 states and 59 transitions. [2019-01-07 18:31:24,447 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:31:24,447 INFO L276 IsEmpty]: Start isEmpty. Operand 20 states and 59 transitions. [2019-01-07 18:31:24,447 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-07 18:31:24,447 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:31:24,448 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-07 18:31:24,448 INFO L423 AbstractCegarLoop]: === Iteration 7 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:31:24,448 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:31:24,448 INFO L82 PathProgramCache]: Analyzing trace with hash 941588, now seen corresponding path program 1 times [2019-01-07 18:31:24,448 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:31:24,449 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:24,449 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:31:24,449 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:24,450 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:31:24,457 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:24,532 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-07 18:31:24,533 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-07 18:31:24,534 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-07 18:31:24,542 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-07 18:31:24,542 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:24,542 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:31:24,542 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:31:24,543 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-07 18:31:24,543 INFO L207 CegarAbsIntRunner]: [0], [18], [24], [25] [2019-01-07 18:31:24,544 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:31:24,544 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:31:24,560 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:31:24,560 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-07 18:31:24,560 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:31:24,560 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:31:24,560 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:31:24,560 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:31:24,569 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:31:24,569 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:31:24,574 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:24,581 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:24,581 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:31:24,596 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-07 18:31:24,609 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-07 18:31:24,621 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:24,622 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:24,624 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-07 18:31:24,645 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:24,647 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:24,650 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:24,651 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-07 18:31:24,686 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-07 18:31:24,694 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:24,711 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:24,726 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:24,738 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:24,751 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:24,770 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-07 18:31:24,861 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:24,906 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:24,908 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-07 18:31:24,984 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:24,986 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:24,988 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:24,989 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:24,990 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-07 18:31:24,993 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:25,003 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:25,015 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:25,046 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-07 18:31:25,046 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 5 variables, input treesize:44, output treesize:46 [2019-01-07 18:31:25,053 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:25,054 WARN L385 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-07 18:31:25,054 WARN L386 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-07 18:31:25,180 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:25,181 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-07 18:31:25,192 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:25,226 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:31:25,227 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:51, output treesize:29 [2019-01-07 18:31:25,234 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:25,234 WARN L385 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-07 18:31:25,235 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 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-07 18:31:25,325 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-07 18:31:25,326 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-07 18:31:25,332 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-07 18:31:25,333 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-07 18:31:25,333 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:25,333 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:31:25,394 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-07 18:31:25,395 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-07 18:31:25,397 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-07 18:31:25,398 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-07 18:31:25,398 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:25,419 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-01-07 18:31:25,419 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 6 [2019-01-07 18:31:25,419 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-07 18:31:25,420 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-01-07 18:31:25,420 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:31:25,420 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-07 18:31:25,432 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 4 edges. 4 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:31:25,432 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-07 18:31:25,432 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-07 18:31:25,432 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=26, Invalid=30, Unknown=0, NotChecked=0, Total=56 [2019-01-07 18:31:25,433 INFO L87 Difference]: Start difference. First operand 20 states and 59 transitions. Second operand 4 states. [2019-01-07 18:31:25,740 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:25,740 INFO L93 Difference]: Finished difference Result 25 states and 74 transitions. [2019-01-07 18:31:25,740 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-07 18:31:25,740 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-01-07 18:31:25,740 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:31:25,741 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-07 18:31:25,741 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 24 transitions. [2019-01-07 18:31:25,742 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-07 18:31:25,742 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 24 transitions. [2019-01-07 18:31:25,742 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 24 transitions. [2019-01-07 18:31:25,765 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 24 edges. 24 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:31:25,766 INFO L225 Difference]: With dead ends: 25 [2019-01-07 18:31:25,767 INFO L226 Difference]: Without dead ends: 24 [2019-01-07 18:31:25,767 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 8 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=26, Invalid=30, Unknown=0, NotChecked=0, Total=56 [2019-01-07 18:31:25,767 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 24 states. [2019-01-07 18:31:25,856 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 24 to 23. [2019-01-07 18:31:25,856 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:31:25,857 INFO L82 GeneralOperation]: Start isEquivalent. First operand 24 states. Second operand 23 states. [2019-01-07 18:31:25,857 INFO L74 IsIncluded]: Start isIncluded. First operand 24 states. Second operand 23 states. [2019-01-07 18:31:25,857 INFO L87 Difference]: Start difference. First operand 24 states. Second operand 23 states. [2019-01-07 18:31:25,859 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:25,859 INFO L93 Difference]: Finished difference Result 24 states and 73 transitions. [2019-01-07 18:31:25,859 INFO L276 IsEmpty]: Start isEmpty. Operand 24 states and 73 transitions. [2019-01-07 18:31:25,860 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:25,860 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:25,860 INFO L74 IsIncluded]: Start isIncluded. First operand 23 states. Second operand 24 states. [2019-01-07 18:31:25,860 INFO L87 Difference]: Start difference. First operand 23 states. Second operand 24 states. [2019-01-07 18:31:25,861 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:25,862 INFO L93 Difference]: Finished difference Result 24 states and 73 transitions. [2019-01-07 18:31:25,862 INFO L276 IsEmpty]: Start isEmpty. Operand 24 states and 73 transitions. [2019-01-07 18:31:25,862 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:25,862 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:25,862 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:31:25,862 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:31:25,862 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 23 states. [2019-01-07 18:31:25,864 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 23 states to 23 states and 73 transitions. [2019-01-07 18:31:25,864 INFO L78 Accepts]: Start accepts. Automaton has 23 states and 73 transitions. Word has length 4 [2019-01-07 18:31:25,864 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:31:25,864 INFO L480 AbstractCegarLoop]: Abstraction has 23 states and 73 transitions. [2019-01-07 18:31:25,864 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-07 18:31:25,864 INFO L276 IsEmpty]: Start isEmpty. Operand 23 states and 73 transitions. [2019-01-07 18:31:25,864 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-07 18:31:25,865 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:31:25,865 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-07 18:31:25,865 INFO L423 AbstractCegarLoop]: === Iteration 8 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:31:25,865 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:31:25,865 INFO L82 PathProgramCache]: Analyzing trace with hash 941152, now seen corresponding path program 1 times [2019-01-07 18:31:25,865 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:31:25,866 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:25,866 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:31:25,866 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:25,867 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:31:25,879 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:26,016 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-07 18:31:26,018 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-07 18:31:26,019 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-07 18:31:26,020 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-07 18:31:26,021 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:26,021 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:31:26,021 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:31:26,021 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-07 18:31:26,022 INFO L207 CegarAbsIntRunner]: [0], [10], [18], [23] [2019-01-07 18:31:26,023 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:31:26,023 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:31:26,034 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:31:26,034 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-07 18:31:26,034 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:31:26,035 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:31:26,035 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:31:26,035 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:31:26,043 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:31:26,043 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:31:26,065 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:26,070 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:26,071 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:31:26,129 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-07 18:31:26,138 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-07 18:31:26,148 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:26,150 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:26,151 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-07 18:31:26,162 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:26,163 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:26,165 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:26,166 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-07 18:31:26,198 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-07 18:31:26,206 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:26,226 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:26,242 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:26,256 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:26,271 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:26,296 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:26,297 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-07 18:31:26,376 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:26,377 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:26,379 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-07 18:31:26,430 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:26,431 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:26,436 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:26,437 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:26,438 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-07 18:31:26,443 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:26,453 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:26,464 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:26,564 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-07 18:31:26,564 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:52, output treesize:50 [2019-01-07 18:31:26,577 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:26,577 WARN L385 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-07 18:31:26,577 WARN L386 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-07 18:31:26,679 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:26,681 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 18:31:26,688 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:26,717 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:31:26,717 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:55, output treesize:33 [2019-01-07 18:31:28,725 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:28,726 WARN L385 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-07 18:31:28,726 WARN L386 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-07 18:31:28,787 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:28,789 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:28,790 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:28,791 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:28,792 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:31:28,794 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 60 [2019-01-07 18:31:28,798 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:28,854 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:31:28,855 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:45, output treesize:29 [2019-01-07 18:31:28,870 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:28,870 WARN L385 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-07 18:31:28,871 WARN L386 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-07 18:31:28,910 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-07 18:31:28,912 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-07 18:31:28,915 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-07 18:31:28,918 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-07 18:31:28,919 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:28,919 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:31:28,970 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-07 18:31:28,971 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-07 18:31:28,973 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-07 18:31:28,975 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-07 18:31:28,976 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:28,996 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:31:28,996 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 18:31:28,997 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:31:28,997 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 18:31:28,997 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:31:28,997 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:31:29,010 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:31:29,011 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:31:29,011 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:31:29,011 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=41, Invalid=69, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:31:29,012 INFO L87 Difference]: Start difference. First operand 23 states and 73 transitions. Second operand 8 states. [2019-01-07 18:31:30,058 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:30,058 INFO L93 Difference]: Finished difference Result 56 states and 117 transitions. [2019-01-07 18:31:30,058 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 18:31:30,059 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 18:31:30,059 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:31:30,059 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:31:30,060 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 73 transitions. [2019-01-07 18:31:30,060 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:31:30,061 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 73 transitions. [2019-01-07 18:31:30,061 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 73 transitions. [2019-01-07 18:31:30,217 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-07 18:31:30,218 INFO L225 Difference]: With dead ends: 56 [2019-01-07 18:31:30,218 INFO L226 Difference]: Without dead ends: 55 [2019-01-07 18:31:30,219 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-07 18:31:30,219 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 55 states. [2019-01-07 18:31:30,435 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 55 to 24. [2019-01-07 18:31:30,435 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:31:30,435 INFO L82 GeneralOperation]: Start isEquivalent. First operand 55 states. Second operand 24 states. [2019-01-07 18:31:30,435 INFO L74 IsIncluded]: Start isIncluded. First operand 55 states. Second operand 24 states. [2019-01-07 18:31:30,436 INFO L87 Difference]: Start difference. First operand 55 states. Second operand 24 states. [2019-01-07 18:31:30,438 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:30,438 INFO L93 Difference]: Finished difference Result 55 states and 115 transitions. [2019-01-07 18:31:30,438 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 115 transitions. [2019-01-07 18:31:30,439 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:30,439 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:30,439 INFO L74 IsIncluded]: Start isIncluded. First operand 24 states. Second operand 55 states. [2019-01-07 18:31:30,439 INFO L87 Difference]: Start difference. First operand 24 states. Second operand 55 states. [2019-01-07 18:31:30,442 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:30,442 INFO L93 Difference]: Finished difference Result 55 states and 115 transitions. [2019-01-07 18:31:30,442 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 115 transitions. [2019-01-07 18:31:30,442 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:30,442 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:30,442 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:31:30,443 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:31:30,443 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 24 states. [2019-01-07 18:31:30,444 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 24 states to 24 states and 79 transitions. [2019-01-07 18:31:30,444 INFO L78 Accepts]: Start accepts. Automaton has 24 states and 79 transitions. Word has length 4 [2019-01-07 18:31:30,444 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:31:30,445 INFO L480 AbstractCegarLoop]: Abstraction has 24 states and 79 transitions. [2019-01-07 18:31:30,445 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:31:30,445 INFO L276 IsEmpty]: Start isEmpty. Operand 24 states and 79 transitions. [2019-01-07 18:31:30,445 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-07 18:31:30,445 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:31:30,445 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-07 18:31:30,446 INFO L423 AbstractCegarLoop]: === Iteration 9 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:31:30,446 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:31:30,446 INFO L82 PathProgramCache]: Analyzing trace with hash 941276, now seen corresponding path program 1 times [2019-01-07 18:31:30,446 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:31:30,447 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:30,447 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:31:30,447 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:30,447 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:31:30,458 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:30,565 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-07 18:31:30,571 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-07 18:31:30,572 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-07 18:31:30,572 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-07 18:31:30,573 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:30,573 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:31:30,573 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:31:30,573 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-07 18:31:30,573 INFO L207 CegarAbsIntRunner]: [0], [14], [18], [23] [2019-01-07 18:31:30,579 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:31:30,579 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:31:30,595 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:31:30,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-07 18:31:30,595 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:31:30,595 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:31:30,596 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:31:30,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 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:31:30,605 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:31:30,605 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:31:30,610 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:30,615 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:30,616 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:31:30,682 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:30,684 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-07 18:31:30,727 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:30,728 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:30,729 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-07 18:31:30,803 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:30,804 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:30,805 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:30,806 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:30,807 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-07 18:31:30,809 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:30,823 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:30,834 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:30,851 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 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-07 18:31:30,859 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-07 18:31:30,875 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-07 18:31:30,890 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-07 18:31:30,908 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-07 18:31:30,913 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:30,936 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:30,950 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:30,962 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:30,974 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:31,001 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-07 18:31:31,002 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:52, output treesize:50 [2019-01-07 18:31:31,008 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:31,009 WARN L385 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-07 18:31:31,009 WARN L386 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-07 18:31:31,160 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:31,161 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 18:31:31,171 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:31,192 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:31:31,193 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:55, output treesize:33 [2019-01-07 18:31:32,459 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:32,459 WARN L385 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-07 18:31:32,459 WARN L386 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-07 18:31:32,506 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:32,507 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:32,508 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:32,509 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:32,510 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:32,511 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:32,513 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-07 18:31:32,516 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:32,540 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:31:32,541 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:45, output treesize:27 [2019-01-07 18:31:34,547 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:34,548 WARN L385 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-07 18:31:34,548 WARN L386 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-07 18:31:34,574 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-07 18:31:34,577 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-07 18:31:34,578 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-07 18:31:34,579 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-07 18:31:34,579 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:34,579 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:31:34,620 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-07 18:31:34,621 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-07 18:31:34,623 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-07 18:31:34,625 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-07 18:31:34,625 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:34,645 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:31:34,645 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 18:31:34,645 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:31:34,645 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 18:31:34,645 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:31:34,645 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:31:34,660 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:31:34,660 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:31:34,661 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:31:34,661 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:31:34,661 INFO L87 Difference]: Start difference. First operand 24 states and 79 transitions. Second operand 8 states. [2019-01-07 18:31:35,739 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:35,740 INFO L93 Difference]: Finished difference Result 52 states and 120 transitions. [2019-01-07 18:31:35,740 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 18:31:35,740 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 18:31:35,740 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:31:35,740 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:31:35,742 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 63 transitions. [2019-01-07 18:31:35,742 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:31:35,743 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 63 transitions. [2019-01-07 18:31:35,743 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 63 transitions. [2019-01-07 18:31:35,874 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 63 edges. 63 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:31:35,876 INFO L225 Difference]: With dead ends: 52 [2019-01-07 18:31:35,876 INFO L226 Difference]: Without dead ends: 48 [2019-01-07 18:31:35,877 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-07 18:31:35,877 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 48 states. [2019-01-07 18:31:35,999 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 48 to 26. [2019-01-07 18:31:35,999 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:31:35,999 INFO L82 GeneralOperation]: Start isEquivalent. First operand 48 states. Second operand 26 states. [2019-01-07 18:31:36,000 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand 26 states. [2019-01-07 18:31:36,000 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 26 states. [2019-01-07 18:31:36,003 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:36,003 INFO L93 Difference]: Finished difference Result 48 states and 114 transitions. [2019-01-07 18:31:36,003 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 114 transitions. [2019-01-07 18:31:36,004 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:36,004 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:36,004 INFO L74 IsIncluded]: Start isIncluded. First operand 26 states. Second operand 48 states. [2019-01-07 18:31:36,004 INFO L87 Difference]: Start difference. First operand 26 states. Second operand 48 states. [2019-01-07 18:31:36,006 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:36,007 INFO L93 Difference]: Finished difference Result 48 states and 114 transitions. [2019-01-07 18:31:36,007 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 114 transitions. [2019-01-07 18:31:36,007 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:36,007 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:36,007 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:31:36,008 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:31:36,008 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 26 states. [2019-01-07 18:31:36,009 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 90 transitions. [2019-01-07 18:31:36,009 INFO L78 Accepts]: Start accepts. Automaton has 26 states and 90 transitions. Word has length 4 [2019-01-07 18:31:36,009 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:31:36,010 INFO L480 AbstractCegarLoop]: Abstraction has 26 states and 90 transitions. [2019-01-07 18:31:36,010 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:31:36,010 INFO L276 IsEmpty]: Start isEmpty. Operand 26 states and 90 transitions. [2019-01-07 18:31:36,010 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-07 18:31:36,010 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:31:36,010 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-07 18:31:36,011 INFO L423 AbstractCegarLoop]: === Iteration 10 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:31:36,011 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:31:36,011 INFO L82 PathProgramCache]: Analyzing trace with hash 943510, now seen corresponding path program 1 times [2019-01-07 18:31:36,011 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:31:36,012 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:36,012 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:31:36,012 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:36,012 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:31:36,018 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:36,073 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-07 18:31:36,074 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-07 18:31:36,075 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-07 18:31:36,075 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-07 18:31:36,075 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:36,076 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:31:36,076 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:31:36,076 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-07 18:31:36,076 INFO L207 CegarAbsIntRunner]: [0], [20], [24], [25] [2019-01-07 18:31:36,081 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:31:36,081 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:31:36,092 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:31:36,092 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-07 18:31:36,093 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:31:36,093 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:31:36,093 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:31:36,093 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:31:36,102 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:31:36,102 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:31:36,106 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:36,111 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:36,112 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:31:36,152 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-07 18:31:36,160 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-07 18:31:36,175 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:36,178 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:36,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, 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-07 18:31:36,193 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:36,194 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:36,196 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:36,197 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-07 18:31:36,212 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:36,214 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:36,216 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:36,217 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:36,218 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-07 18:31:36,236 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:36,262 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:36,277 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:36,290 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:36,302 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:36,326 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-07 18:31:36,355 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:36,357 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:36,358 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-07 18:31:36,484 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:36,485 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:36,487 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:36,488 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:36,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, 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-07 18:31:36,554 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:36,555 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:36,556 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:36,557 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:36,559 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:36,561 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:36,562 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-07 18:31:36,565 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:36,581 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:36,595 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:36,612 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:36,660 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-07 18:31:36,661 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 5 variables, input treesize:61, output treesize:62 [2019-01-07 18:31:36,670 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:36,670 WARN L385 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-07 18:31:36,670 WARN L386 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-07 18:31:36,779 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:36,780 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-07 18:31:36,786 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:36,826 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-07 18:31:36,826 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:72, output treesize:46 [2019-01-07 18:31:39,081 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:39,081 WARN L385 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-07 18:31:39,082 WARN L386 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-07 18:31:39,165 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-07 18:31:39,167 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-07 18:31:39,168 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-07 18:31:39,169 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-07 18:31:39,169 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:39,170 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:31:39,194 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-07 18:31:39,195 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-07 18:31:39,196 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-07 18:31:39,198 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-07 18:31:39,199 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:39,219 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:31:39,220 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-07 18:31:39,220 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:31:39,220 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-07 18:31:39,220 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:31:39,220 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-07 18:31:39,234 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:31:39,235 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-07 18:31:39,235 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-07 18:31:39,235 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-07 18:31:39,235 INFO L87 Difference]: Start difference. First operand 26 states and 90 transitions. Second operand 6 states. [2019-01-07 18:31:39,699 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:39,700 INFO L93 Difference]: Finished difference Result 42 states and 110 transitions. [2019-01-07 18:31:39,700 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-07 18:31:39,700 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-07 18:31:39,700 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:31:39,700 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-07 18:31:39,701 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 46 transitions. [2019-01-07 18:31:39,701 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-07 18:31:39,702 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 46 transitions. [2019-01-07 18:31:39,702 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 46 transitions. [2019-01-07 18:31:39,838 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 46 edges. 46 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:31:39,839 INFO L225 Difference]: With dead ends: 42 [2019-01-07 18:31:39,839 INFO L226 Difference]: Without dead ends: 41 [2019-01-07 18:31:39,839 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 9 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-01-07 18:31:39,839 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 41 states. [2019-01-07 18:31:40,003 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 41 to 26. [2019-01-07 18:31:40,004 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:31:40,004 INFO L82 GeneralOperation]: Start isEquivalent. First operand 41 states. Second operand 26 states. [2019-01-07 18:31:40,004 INFO L74 IsIncluded]: Start isIncluded. First operand 41 states. Second operand 26 states. [2019-01-07 18:31:40,004 INFO L87 Difference]: Start difference. First operand 41 states. Second operand 26 states. [2019-01-07 18:31:40,006 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:40,007 INFO L93 Difference]: Finished difference Result 41 states and 108 transitions. [2019-01-07 18:31:40,007 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 108 transitions. [2019-01-07 18:31:40,007 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:40,007 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:40,008 INFO L74 IsIncluded]: Start isIncluded. First operand 26 states. Second operand 41 states. [2019-01-07 18:31:40,008 INFO L87 Difference]: Start difference. First operand 26 states. Second operand 41 states. [2019-01-07 18:31:40,009 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:40,009 INFO L93 Difference]: Finished difference Result 41 states and 108 transitions. [2019-01-07 18:31:40,010 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 108 transitions. [2019-01-07 18:31:40,010 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:40,010 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:40,010 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:31:40,010 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:31:40,010 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 26 states. [2019-01-07 18:31:40,011 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 90 transitions. [2019-01-07 18:31:40,012 INFO L78 Accepts]: Start accepts. Automaton has 26 states and 90 transitions. Word has length 4 [2019-01-07 18:31:40,012 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:31:40,012 INFO L480 AbstractCegarLoop]: Abstraction has 26 states and 90 transitions. [2019-01-07 18:31:40,012 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-07 18:31:40,012 INFO L276 IsEmpty]: Start isEmpty. Operand 26 states and 90 transitions. [2019-01-07 18:31:40,012 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-07 18:31:40,012 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:31:40,012 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-07 18:31:40,013 INFO L423 AbstractCegarLoop]: === Iteration 11 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:31:40,013 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:31:40,013 INFO L82 PathProgramCache]: Analyzing trace with hash 943074, now seen corresponding path program 1 times [2019-01-07 18:31:40,013 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:31:40,014 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:40,014 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:31:40,014 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:40,014 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:31:40,021 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:40,114 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-07 18:31:40,116 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-07 18:31:40,117 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-07 18:31:40,118 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-07 18:31:40,118 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:40,118 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:31:40,119 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:31:40,119 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-07 18:31:40,119 INFO L207 CegarAbsIntRunner]: [0], [10], [20], [23] [2019-01-07 18:31:40,121 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:31:40,121 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:31:40,178 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:31:40,178 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-07 18:31:40,179 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:31:40,179 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:31:40,179 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:31:40,179 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 10 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 10 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:31:40,188 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:31:40,188 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:31:40,193 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:40,197 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:40,198 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:31:40,259 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-07 18:31:40,268 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-07 18:31:40,278 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:40,280 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:40,281 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-07 18:31:40,333 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:40,334 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:40,335 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:40,336 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-07 18:31:40,356 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:40,357 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:40,359 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:40,360 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:40,361 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-07 18:31:40,368 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:40,426 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:40,449 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:40,468 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:40,490 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:40,527 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:40,528 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-07 18:31:40,610 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:40,612 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:40,612 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-07 18:31:40,715 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:40,717 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:40,720 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:40,723 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:40,724 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 61 [2019-01-07 18:31:40,833 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:40,834 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:40,835 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:40,837 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:40,838 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:40,839 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:40,840 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-07 18:31:40,845 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:40,862 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:40,880 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:40,909 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:40,951 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-07 18:31:40,952 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 4 variables, input treesize:69, output treesize:66 [2019-01-07 18:31:40,960 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:40,960 WARN L385 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-07 18:31:40,960 WARN L386 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-07 18:31:41,072 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:41,073 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-07 18:31:41,079 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:41,122 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:31:41,123 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:76, output treesize:50 [2019-01-07 18:31:43,128 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:43,128 WARN L385 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-07 18:31:43,129 WARN L386 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-07 18:31:43,233 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:43,234 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:43,235 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:43,236 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:43,238 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:43,239 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:43,240 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:43,241 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-07 18:31:43,248 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:43,296 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-07 18:31:43,297 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:60, output treesize:38 [2019-01-07 18:31:43,369 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:43,370 WARN L385 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-07 18:31:43,370 WARN L386 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-07 18:31:43,422 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-07 18:31:43,424 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-07 18:31:43,426 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-07 18:31:43,427 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-07 18:31:43,427 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:43,428 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:31:43,482 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-07 18:31:43,484 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-07 18:31:43,485 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-07 18:31:43,488 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-07 18:31:43,488 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:43,507 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:31:43,507 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 18:31:43,508 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:31:43,508 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 18:31:43,508 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:31:43,508 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:31:43,523 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:31:43,524 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:31:43,524 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:31:43,524 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:31:43,524 INFO L87 Difference]: Start difference. First operand 26 states and 90 transitions. Second operand 8 states. [2019-01-07 18:31:44,564 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:44,564 INFO L93 Difference]: Finished difference Result 54 states and 131 transitions. [2019-01-07 18:31:44,564 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 18:31:44,565 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 18:31:44,565 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:31:44,565 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:31:44,566 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 60 transitions. [2019-01-07 18:31:44,566 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:31:44,566 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 60 transitions. [2019-01-07 18:31:44,566 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 60 transitions. [2019-01-07 18:31:44,788 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-07 18:31:44,789 INFO L225 Difference]: With dead ends: 54 [2019-01-07 18:31:44,789 INFO L226 Difference]: Without dead ends: 53 [2019-01-07 18:31:44,789 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-07 18:31:44,789 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 53 states. [2019-01-07 18:31:44,968 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 53 to 27. [2019-01-07 18:31:44,969 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:31:44,969 INFO L82 GeneralOperation]: Start isEquivalent. First operand 53 states. Second operand 27 states. [2019-01-07 18:31:44,969 INFO L74 IsIncluded]: Start isIncluded. First operand 53 states. Second operand 27 states. [2019-01-07 18:31:44,969 INFO L87 Difference]: Start difference. First operand 53 states. Second operand 27 states. [2019-01-07 18:31:44,971 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:44,971 INFO L93 Difference]: Finished difference Result 53 states and 129 transitions. [2019-01-07 18:31:44,972 INFO L276 IsEmpty]: Start isEmpty. Operand 53 states and 129 transitions. [2019-01-07 18:31:44,972 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:44,972 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:44,973 INFO L74 IsIncluded]: Start isIncluded. First operand 27 states. Second operand 53 states. [2019-01-07 18:31:44,973 INFO L87 Difference]: Start difference. First operand 27 states. Second operand 53 states. [2019-01-07 18:31:44,974 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:44,975 INFO L93 Difference]: Finished difference Result 53 states and 129 transitions. [2019-01-07 18:31:44,975 INFO L276 IsEmpty]: Start isEmpty. Operand 53 states and 129 transitions. [2019-01-07 18:31:44,975 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:44,975 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:44,975 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:31:44,976 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:31:44,976 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 27 states. [2019-01-07 18:31:44,977 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 27 states to 27 states and 96 transitions. [2019-01-07 18:31:44,977 INFO L78 Accepts]: Start accepts. Automaton has 27 states and 96 transitions. Word has length 4 [2019-01-07 18:31:44,977 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:31:44,977 INFO L480 AbstractCegarLoop]: Abstraction has 27 states and 96 transitions. [2019-01-07 18:31:44,977 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:31:44,977 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 96 transitions. [2019-01-07 18:31:44,978 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-07 18:31:44,978 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:31:44,978 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-07 18:31:44,978 INFO L423 AbstractCegarLoop]: === Iteration 12 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:31:44,978 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:31:44,978 INFO L82 PathProgramCache]: Analyzing trace with hash 929868, now seen corresponding path program 1 times [2019-01-07 18:31:44,979 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:31:44,979 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:44,979 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:31:44,980 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:44,980 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:31:44,989 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:45,236 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-07 18:31:45,237 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-07 18:31:45,238 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-07 18:31:45,243 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-07 18:31:45,243 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:45,243 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:31:45,244 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:31:45,244 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-07 18:31:45,244 INFO L207 CegarAbsIntRunner]: [0], [6], [18], [23] [2019-01-07 18:31:45,245 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:31:45,245 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:31:45,259 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:31:45,260 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-07 18:31:45,260 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:31:45,260 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:31:45,260 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:31:45,260 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 11 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 11 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:31:45,272 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:31:45,272 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:31:45,276 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:45,288 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:45,289 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:31:45,344 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:45,345 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-07 18:31:45,385 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:45,387 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:45,388 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 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-07 18:31:45,435 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:45,437 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:45,438 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:45,439 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:45,440 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-07 18:31:45,443 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:45,453 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:45,464 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:45,482 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-07 18:31:45,490 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-07 18:31:45,500 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-07 18:31:45,527 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-07 18:31:45,562 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-07 18:31:45,565 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:45,594 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:45,616 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:45,632 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:45,647 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:45,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-07 18:31:45,688 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 5 variables, input treesize:52, output treesize:50 [2019-01-07 18:31:45,696 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:45,697 WARN L385 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-07 18:31:45,697 WARN L386 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-07 18:31:45,828 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:45,829 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:31:45,836 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:45,876 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:31:45,876 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:55, output treesize:33 [2019-01-07 18:31:45,881 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:45,881 WARN L385 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-07 18:31:45,881 WARN L386 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-07 18:31:45,965 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:45,966 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:45,967 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:45,968 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:45,969 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:45,970 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:45,971 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 57 [2019-01-07 18:31:45,976 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:46,009 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:31:46,010 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:43, output treesize:25 [2019-01-07 18:31:46,393 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:46,393 WARN L385 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-07 18:31:46,393 WARN L386 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-07 18:31:46,417 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-07 18:31:46,419 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-07 18:31:46,421 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-07 18:31:46,422 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-07 18:31:46,422 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:46,423 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:31:46,453 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-07 18:31:46,454 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-07 18:31:46,456 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-07 18:31:46,458 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-07 18:31:46,459 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:46,479 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:31:46,479 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-01-07 18:31:46,479 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:31:46,479 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 18:31:46,479 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:31:46,480 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:31:46,499 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:31:46,499 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:31:46,500 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:31:46,500 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=37, Invalid=53, Unknown=0, NotChecked=0, Total=90 [2019-01-07 18:31:46,500 INFO L87 Difference]: Start difference. First operand 27 states and 96 transitions. Second operand 8 states. [2019-01-07 18:31:47,183 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:47,184 INFO L93 Difference]: Finished difference Result 63 states and 165 transitions. [2019-01-07 18:31:47,184 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-07 18:31:47,184 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 18:31:47,184 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:31:47,184 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:31:47,185 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 79 transitions. [2019-01-07 18:31:47,185 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:31:47,186 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 79 transitions. [2019-01-07 18:31:47,186 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 79 transitions. [2019-01-07 18:31:47,296 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-07 18:31:47,298 INFO L225 Difference]: With dead ends: 63 [2019-01-07 18:31:47,298 INFO L226 Difference]: Without dead ends: 61 [2019-01-07 18:31:47,299 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-07 18:31:47,299 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 61 states. [2019-01-07 18:31:47,493 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 61 to 32. [2019-01-07 18:31:47,494 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:31:47,494 INFO L82 GeneralOperation]: Start isEquivalent. First operand 61 states. Second operand 32 states. [2019-01-07 18:31:47,494 INFO L74 IsIncluded]: Start isIncluded. First operand 61 states. Second operand 32 states. [2019-01-07 18:31:47,494 INFO L87 Difference]: Start difference. First operand 61 states. Second operand 32 states. [2019-01-07 18:31:47,497 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:47,497 INFO L93 Difference]: Finished difference Result 61 states and 161 transitions. [2019-01-07 18:31:47,498 INFO L276 IsEmpty]: Start isEmpty. Operand 61 states and 161 transitions. [2019-01-07 18:31:47,498 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:47,499 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:47,499 INFO L74 IsIncluded]: Start isIncluded. First operand 32 states. Second operand 61 states. [2019-01-07 18:31:47,499 INFO L87 Difference]: Start difference. First operand 32 states. Second operand 61 states. [2019-01-07 18:31:47,501 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:47,501 INFO L93 Difference]: Finished difference Result 61 states and 161 transitions. [2019-01-07 18:31:47,501 INFO L276 IsEmpty]: Start isEmpty. Operand 61 states and 161 transitions. [2019-01-07 18:31:47,501 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:47,502 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:47,502 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:31:47,502 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:31:47,502 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 32 states. [2019-01-07 18:31:47,503 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 32 states to 32 states and 113 transitions. [2019-01-07 18:31:47,503 INFO L78 Accepts]: Start accepts. Automaton has 32 states and 113 transitions. Word has length 4 [2019-01-07 18:31:47,504 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:31:47,504 INFO L480 AbstractCegarLoop]: Abstraction has 32 states and 113 transitions. [2019-01-07 18:31:47,504 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:31:47,504 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 113 transitions. [2019-01-07 18:31:47,504 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-07 18:31:47,504 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:31:47,504 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-07 18:31:47,505 INFO L423 AbstractCegarLoop]: === Iteration 13 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:31:47,505 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:31:47,505 INFO L82 PathProgramCache]: Analyzing trace with hash 930056, now seen corresponding path program 1 times [2019-01-07 18:31:47,505 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:31:47,506 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:47,506 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:31:47,506 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:47,506 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:31:47,513 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:47,592 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-07 18:31:47,597 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-07 18:31:47,598 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-07 18:31:47,598 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-07 18:31:47,599 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 18:31:47,599 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-01-07 18:31:47,599 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2019-01-07 18:31:47,599 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-07 18:31:47,599 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-01-07 18:31:47,599 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:31:47,599 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-07 18:31:47,604 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 4 edges. 4 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:31:47,604 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-07 18:31:47,604 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-07 18:31:47,604 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2019-01-07 18:31:47,605 INFO L87 Difference]: Start difference. First operand 32 states and 113 transitions. Second operand 4 states. [2019-01-07 18:31:47,956 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:47,956 INFO L93 Difference]: Finished difference Result 41 states and 126 transitions. [2019-01-07 18:31:47,956 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-07 18:31:47,956 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-01-07 18:31:47,957 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:31:47,957 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-07 18:31:47,957 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 28 transitions. [2019-01-07 18:31:47,957 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-07 18:31:47,958 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 28 transitions. [2019-01-07 18:31:47,958 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 28 transitions. [2019-01-07 18:31:48,085 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-07 18:31:48,087 INFO L225 Difference]: With dead ends: 41 [2019-01-07 18:31:48,087 INFO L226 Difference]: Without dead ends: 40 [2019-01-07 18:31:48,087 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-07 18:31:48,088 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 40 states. [2019-01-07 18:31:48,326 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 40 to 33. [2019-01-07 18:31:48,327 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:31:48,327 INFO L82 GeneralOperation]: Start isEquivalent. First operand 40 states. Second operand 33 states. [2019-01-07 18:31:48,327 INFO L74 IsIncluded]: Start isIncluded. First operand 40 states. Second operand 33 states. [2019-01-07 18:31:48,327 INFO L87 Difference]: Start difference. First operand 40 states. Second operand 33 states. [2019-01-07 18:31:48,329 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:48,329 INFO L93 Difference]: Finished difference Result 40 states and 124 transitions. [2019-01-07 18:31:48,329 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 124 transitions. [2019-01-07 18:31:48,329 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:48,329 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:48,330 INFO L74 IsIncluded]: Start isIncluded. First operand 33 states. Second operand 40 states. [2019-01-07 18:31:48,330 INFO L87 Difference]: Start difference. First operand 33 states. Second operand 40 states. [2019-01-07 18:31:48,331 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:48,331 INFO L93 Difference]: Finished difference Result 40 states and 124 transitions. [2019-01-07 18:31:48,331 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 124 transitions. [2019-01-07 18:31:48,332 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:48,332 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:48,332 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:31:48,332 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:31:48,332 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 33 states. [2019-01-07 18:31:48,333 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 33 states to 33 states and 118 transitions. [2019-01-07 18:31:48,333 INFO L78 Accepts]: Start accepts. Automaton has 33 states and 118 transitions. Word has length 4 [2019-01-07 18:31:48,334 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:31:48,334 INFO L480 AbstractCegarLoop]: Abstraction has 33 states and 118 transitions. [2019-01-07 18:31:48,334 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-07 18:31:48,334 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 118 transitions. [2019-01-07 18:31:48,334 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-07 18:31:48,334 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:31:48,334 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-07 18:31:48,335 INFO L423 AbstractCegarLoop]: === Iteration 14 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:31:48,335 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:31:48,335 INFO L82 PathProgramCache]: Analyzing trace with hash 933712, now seen corresponding path program 2 times [2019-01-07 18:31:48,335 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:31:48,336 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:48,336 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:31:48,336 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:48,336 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:31:48,343 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:48,607 WARN L181 SmtUtils]: Spent 104.00 ms on a formula simplification that was a NOOP. DAG size: 16 [2019-01-07 18:31:48,930 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-07 18:31:48,932 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-07 18:31:48,948 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-07 18:31:48,949 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-07 18:31:48,949 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:48,949 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:31:48,949 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:31:48,950 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-07 18:31:48,950 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-07 18:31:48,950 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:31:48,950 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 12 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 12 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:31:48,961 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-07 18:31:48,962 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-07 18:31:48,967 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 2 check-sat command(s) [2019-01-07 18:31:48,968 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-07 18:31:48,979 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:48,979 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:31:49,051 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-07 18:31:49,061 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-07 18:31:49,071 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:49,072 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:49,072 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-07 18:31:49,087 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:49,089 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:49,090 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:49,092 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-07 18:31:49,115 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:49,116 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:49,118 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:49,119 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:49,120 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-07 18:31:49,126 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:49,159 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:49,175 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:49,189 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:49,202 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:49,235 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:49,237 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-07 18:31:49,290 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:49,292 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:49,292 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-07 18:31:49,438 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:49,440 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:49,441 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:49,442 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:49,443 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-07 18:31:49,523 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:49,525 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:49,526 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:49,527 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:49,528 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:49,529 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:49,530 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-07 18:31:49,535 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:49,554 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:49,579 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:49,599 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:49,640 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-07 18:31:49,641 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 4 variables, input treesize:69, output treesize:66 [2019-01-07 18:31:49,661 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:49,662 WARN L385 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-07 18:31:49,662 WARN L386 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-07 18:31:50,116 WARN L181 SmtUtils]: Spent 203.00 ms on a formula simplification that was a NOOP. DAG size: 40 [2019-01-07 18:31:50,212 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:50,213 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-07 18:31:50,220 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:50,260 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:31:50,261 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:76, output treesize:50 [2019-01-07 18:31:52,289 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:52,289 WARN L385 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-07 18:31:52,289 WARN L386 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-07 18:31:52,383 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:52,389 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:52,390 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:52,390 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:52,391 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:52,392 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:52,392 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:31:52,393 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-07 18:31:52,399 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:52,439 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-07 18:31:52,440 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:62, output treesize:44 [2019-01-07 18:31:52,462 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:52,463 WARN L385 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-07 18:31:52,463 WARN L386 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-07 18:31:52,498 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-07 18:31:52,500 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-07 18:31:52,503 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-07 18:31:52,505 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-07 18:31:52,506 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:52,506 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:31:52,561 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-07 18:31:52,563 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-07 18:31:52,564 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-07 18:31:52,566 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-07 18:31:52,567 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:52,586 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:31:52,586 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 18:31:52,586 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:31:52,587 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 18:31:52,587 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:31:52,587 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:31:52,600 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:31:52,600 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:31:52,601 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:31:52,601 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=43, Invalid=67, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:31:52,601 INFO L87 Difference]: Start difference. First operand 33 states and 118 transitions. Second operand 8 states. [2019-01-07 18:31:53,963 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:53,963 INFO L93 Difference]: Finished difference Result 57 states and 149 transitions. [2019-01-07 18:31:53,963 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 18:31:53,963 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 18:31:53,964 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:31:53,964 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:31:53,964 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 58 transitions. [2019-01-07 18:31:53,964 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:31:53,965 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 58 transitions. [2019-01-07 18:31:53,965 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 58 transitions. [2019-01-07 18:31:54,056 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-07 18:31:54,057 INFO L225 Difference]: With dead ends: 57 [2019-01-07 18:31:54,058 INFO L226 Difference]: Without dead ends: 55 [2019-01-07 18:31:54,058 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 1.4s TimeCoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-01-07 18:31:54,058 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 55 states. [2019-01-07 18:31:55,195 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 55 to 33. [2019-01-07 18:31:55,196 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:31:55,196 INFO L82 GeneralOperation]: Start isEquivalent. First operand 55 states. Second operand 33 states. [2019-01-07 18:31:55,196 INFO L74 IsIncluded]: Start isIncluded. First operand 55 states. Second operand 33 states. [2019-01-07 18:31:55,196 INFO L87 Difference]: Start difference. First operand 55 states. Second operand 33 states. [2019-01-07 18:31:55,198 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:55,198 INFO L93 Difference]: Finished difference Result 55 states and 146 transitions. [2019-01-07 18:31:55,198 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 146 transitions. [2019-01-07 18:31:55,199 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:55,199 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:55,199 INFO L74 IsIncluded]: Start isIncluded. First operand 33 states. Second operand 55 states. [2019-01-07 18:31:55,199 INFO L87 Difference]: Start difference. First operand 33 states. Second operand 55 states. [2019-01-07 18:31:55,200 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:55,200 INFO L93 Difference]: Finished difference Result 55 states and 146 transitions. [2019-01-07 18:31:55,201 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 146 transitions. [2019-01-07 18:31:55,201 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:55,201 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:55,201 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:31:55,201 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:31:55,201 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 33 states. [2019-01-07 18:31:55,202 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 33 states to 33 states and 117 transitions. [2019-01-07 18:31:55,203 INFO L78 Accepts]: Start accepts. Automaton has 33 states and 117 transitions. Word has length 4 [2019-01-07 18:31:55,203 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:31:55,203 INFO L480 AbstractCegarLoop]: Abstraction has 33 states and 117 transitions. [2019-01-07 18:31:55,203 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:31:55,203 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 117 transitions. [2019-01-07 18:31:55,203 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-07 18:31:55,203 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:31:55,204 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-07 18:31:55,204 INFO L423 AbstractCegarLoop]: === Iteration 15 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:31:55,204 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:31:55,204 INFO L82 PathProgramCache]: Analyzing trace with hash 933340, now seen corresponding path program 1 times [2019-01-07 18:31:55,204 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:31:55,205 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:55,205 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-07 18:31:55,205 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:55,205 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:31:55,211 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:55,296 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-07 18:31:55,297 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-07 18:31:55,298 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-07 18:31:55,299 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-07 18:31:55,299 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:55,300 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:31:55,300 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:31:55,300 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-07 18:31:55,300 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [23] [2019-01-07 18:31:55,301 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:31:55,301 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:31:55,319 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:31:55,319 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-07 18:31:55,319 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:31:55,319 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:31:55,319 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:31:55,319 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 13 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 13 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:31:55,329 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:31:55,329 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:31:55,333 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:55,337 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:55,338 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:31:55,395 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:55,396 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 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-07 18:31:55,473 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:55,474 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:55,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, 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-07 18:31:55,521 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:55,523 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:55,525 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:55,526 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:55,527 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-07 18:31:55,529 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:55,572 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:55,585 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:55,607 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-07 18:31:55,646 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 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-07 18:31:55,655 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-07 18:31:55,692 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-07 18:31:55,718 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-07 18:31:55,721 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:55,744 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:55,772 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:55,787 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:55,800 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:55,847 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-07 18:31:55,848 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 5 variables, input treesize:52, output treesize:50 [2019-01-07 18:31:55,859 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:55,860 WARN L385 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-07 18:31:55,860 WARN L386 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-07 18:31:55,985 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:55,986 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:31:56,009 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:56,088 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:31:56,088 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:55, output treesize:33 [2019-01-07 18:31:56,114 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:56,114 WARN L385 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-07 18:31:56,114 WARN L386 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-07 18:31:56,172 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:56,174 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:56,175 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:56,176 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:56,177 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:56,178 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:56,179 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-07 18:31:56,182 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:56,211 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:31:56,211 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:45, output treesize:27 [2019-01-07 18:31:56,218 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:56,219 WARN L385 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-07 18:31:56,219 WARN L386 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-07 18:31:56,241 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-07 18:31:56,244 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-07 18:31:56,246 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-07 18:31:56,247 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-07 18:31:56,248 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:56,248 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:31:56,284 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-07 18:31:56,285 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-07 18:31:56,286 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-07 18:31:56,287 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-07 18:31:56,287 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:56,306 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:31:56,306 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-01-07 18:31:56,306 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:31:56,307 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 18:31:56,307 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:31:56,307 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:31:56,319 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:31:56,319 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:31:56,319 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:31:56,319 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=51, Unknown=0, NotChecked=0, Total=90 [2019-01-07 18:31:56,320 INFO L87 Difference]: Start difference. First operand 33 states and 117 transitions. Second operand 8 states. [2019-01-07 18:31:57,270 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:57,270 INFO L93 Difference]: Finished difference Result 61 states and 173 transitions. [2019-01-07 18:31:57,270 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 18:31:57,271 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 18:31:57,271 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:31:57,271 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:31:57,272 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 64 transitions. [2019-01-07 18:31:57,272 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:31:57,272 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 64 transitions. [2019-01-07 18:31:57,272 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 64 transitions. [2019-01-07 18:31:57,375 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 64 edges. 64 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:31:57,377 INFO L225 Difference]: With dead ends: 61 [2019-01-07 18:31:57,377 INFO L226 Difference]: Without dead ends: 60 [2019-01-07 18:31:57,377 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 9 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 24 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=47, Invalid=63, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:31:57,378 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 60 states. [2019-01-07 18:31:57,610 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 60 to 36. [2019-01-07 18:31:57,611 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:31:57,611 INFO L82 GeneralOperation]: Start isEquivalent. First operand 60 states. Second operand 36 states. [2019-01-07 18:31:57,611 INFO L74 IsIncluded]: Start isIncluded. First operand 60 states. Second operand 36 states. [2019-01-07 18:31:57,611 INFO L87 Difference]: Start difference. First operand 60 states. Second operand 36 states. [2019-01-07 18:31:57,614 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:57,614 INFO L93 Difference]: Finished difference Result 60 states and 171 transitions. [2019-01-07 18:31:57,614 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 171 transitions. [2019-01-07 18:31:57,615 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:57,615 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:57,615 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 60 states. [2019-01-07 18:31:57,615 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 60 states. [2019-01-07 18:31:57,617 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:31:57,617 INFO L93 Difference]: Finished difference Result 60 states and 171 transitions. [2019-01-07 18:31:57,617 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 171 transitions. [2019-01-07 18:31:57,618 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:31:57,618 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:31:57,618 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:31:57,618 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:31:57,618 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 36 states. [2019-01-07 18:31:57,619 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 36 states to 36 states and 135 transitions. [2019-01-07 18:31:57,620 INFO L78 Accepts]: Start accepts. Automaton has 36 states and 135 transitions. Word has length 4 [2019-01-07 18:31:57,620 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:31:57,620 INFO L480 AbstractCegarLoop]: Abstraction has 36 states and 135 transitions. [2019-01-07 18:31:57,620 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:31:57,620 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 135 transitions. [2019-01-07 18:31:57,620 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-07 18:31:57,620 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:31:57,621 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-07 18:31:57,621 INFO L423 AbstractCegarLoop]: === Iteration 16 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:31:57,621 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:31:57,621 INFO L82 PathProgramCache]: Analyzing trace with hash 937744, now seen corresponding path program 1 times [2019-01-07 18:31:57,621 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:31:57,622 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:57,622 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:31:57,622 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:31:57,622 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:31:57,627 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:58,046 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-07 18:31:58,064 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-07 18:31:58,073 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-07 18:31:58,083 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-07 18:31:58,083 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:31:58,084 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:31:58,084 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:31:58,084 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-07 18:31:58,084 INFO L207 CegarAbsIntRunner]: [0], [14], [24], [25] [2019-01-07 18:31:58,088 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:31:58,088 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:31:58,126 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:31:58,127 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-07 18:31:58,127 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:31:58,127 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:31:58,127 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:31:58,127 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 14 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 14 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:31:58,136 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:31:58,137 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:31:58,141 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:58,156 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:31:58,157 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:31:58,214 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-07 18:31:58,222 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-07 18:31:58,231 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:58,233 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:58,234 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-07 18:31:58,246 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:58,246 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:58,248 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:58,249 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-07 18:31:58,264 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:58,267 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:58,268 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:58,269 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:58,270 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-07 18:31:58,279 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:58,308 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:58,323 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:58,335 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:58,348 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:58,372 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-07 18:31:58,399 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:58,402 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:58,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, 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-07 18:31:58,460 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:58,461 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:58,464 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:58,465 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:58,466 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-07 18:31:58,545 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:58,546 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:58,549 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:58,550 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:58,551 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:58,552 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:58,553 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-07 18:31:58,557 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:58,573 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:58,590 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:58,608 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:31:58,678 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-07 18:31:58,678 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 5 variables, input treesize:61, output treesize:62 [2019-01-07 18:31:58,685 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:31:58,686 WARN L385 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-07 18:31:58,686 WARN L386 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-07 18:31:58,776 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:31:58,777 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-07 18:31:58,781 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:31:58,820 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-07 18:31:58,820 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:72, output treesize:46 [2019-01-07 18:32:00,976 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:32:00,976 WARN L385 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-07 18:32:00,977 WARN L386 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-07 18:32:01,082 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-07 18:32:01,085 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-07 18:32:01,088 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-07 18:32:01,089 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-07 18:32:01,090 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:32:01,090 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:32:01,147 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-07 18:32:01,147 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-07 18:32:01,149 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-07 18:32:01,151 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-07 18:32:01,151 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:32:01,170 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:32:01,170 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-07 18:32:01,170 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:32:01,171 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-07 18:32:01,171 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:32:01,171 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-07 18:32:01,207 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:32:01,207 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-07 18:32:01,207 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-07 18:32:01,207 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-07 18:32:01,207 INFO L87 Difference]: Start difference. First operand 36 states and 135 transitions. Second operand 6 states. [2019-01-07 18:32:01,884 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:32:01,884 INFO L93 Difference]: Finished difference Result 53 states and 161 transitions. [2019-01-07 18:32:01,885 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-07 18:32:01,885 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-07 18:32:01,885 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:32:01,885 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-07 18:32:01,886 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 46 transitions. [2019-01-07 18:32:01,886 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-07 18:32:01,887 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 46 transitions. [2019-01-07 18:32:01,887 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 46 transitions. [2019-01-07 18:32:02,248 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 46 edges. 46 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:32:02,250 INFO L225 Difference]: With dead ends: 53 [2019-01-07 18:32:02,250 INFO L226 Difference]: Without dead ends: 52 [2019-01-07 18:32:02,251 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 9 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-01-07 18:32:02,251 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 52 states. [2019-01-07 18:32:02,723 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 52 to 37. [2019-01-07 18:32:02,724 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:32:02,724 INFO L82 GeneralOperation]: Start isEquivalent. First operand 52 states. Second operand 37 states. [2019-01-07 18:32:02,724 INFO L74 IsIncluded]: Start isIncluded. First operand 52 states. Second operand 37 states. [2019-01-07 18:32:02,724 INFO L87 Difference]: Start difference. First operand 52 states. Second operand 37 states. [2019-01-07 18:32:02,726 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:32:02,726 INFO L93 Difference]: Finished difference Result 52 states and 159 transitions. [2019-01-07 18:32:02,726 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 159 transitions. [2019-01-07 18:32:02,727 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:32:02,727 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:32:02,727 INFO L74 IsIncluded]: Start isIncluded. First operand 37 states. Second operand 52 states. [2019-01-07 18:32:02,727 INFO L87 Difference]: Start difference. First operand 37 states. Second operand 52 states. [2019-01-07 18:32:02,728 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:32:02,729 INFO L93 Difference]: Finished difference Result 52 states and 159 transitions. [2019-01-07 18:32:02,729 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 159 transitions. [2019-01-07 18:32:02,729 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:32:02,729 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:32:02,729 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:32:02,729 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:32:02,730 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 37 states. [2019-01-07 18:32:02,731 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 37 states to 37 states and 141 transitions. [2019-01-07 18:32:02,731 INFO L78 Accepts]: Start accepts. Automaton has 37 states and 141 transitions. Word has length 4 [2019-01-07 18:32:02,731 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:32:02,731 INFO L480 AbstractCegarLoop]: Abstraction has 37 states and 141 transitions. [2019-01-07 18:32:02,731 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-07 18:32:02,731 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 141 transitions. [2019-01-07 18:32:02,732 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-07 18:32:02,732 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:32:02,732 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-07 18:32:02,732 INFO L423 AbstractCegarLoop]: === Iteration 17 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:32:02,732 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:32:02,732 INFO L82 PathProgramCache]: Analyzing trace with hash 937308, now seen corresponding path program 1 times [2019-01-07 18:32:02,733 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:32:02,733 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:32:02,733 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:32:02,733 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:32:02,734 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:32:02,740 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:32:03,001 WARN L181 SmtUtils]: Spent 110.00 ms on a formula simplification that was a NOOP. DAG size: 16 [2019-01-07 18:32:03,304 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-07 18:32:03,306 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-07 18:32:03,307 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-07 18:32:03,307 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-07 18:32:03,308 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:32:03,308 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:32:03,308 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:32:03,308 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-07 18:32:03,308 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [23] [2019-01-07 18:32:03,309 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:32:03,309 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:32:03,321 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:32:03,322 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-07 18:32:03,322 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:32:03,322 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:32:03,322 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:32:03,322 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 15 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 15 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:32:03,331 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:32:03,331 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:32:03,336 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:32:03,341 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:32:03,341 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:32:03,408 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-07 18:32:03,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, 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-07 18:32:03,426 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:03,427 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:03,428 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-07 18:32:03,444 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:03,445 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:03,446 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:03,447 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-07 18:32:03,468 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:03,470 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:03,471 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:03,473 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32: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, 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-07 18:32:03,479 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:03,512 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:03,531 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:03,546 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:03,559 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:03,592 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:03,593 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-07 18:32:03,651 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:03,652 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:03,653 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-07 18:32:03,719 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:03,720 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:03,722 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:03,723 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:03,724 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 61 [2019-01-07 18:32:03,806 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:03,807 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:03,808 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:03,810 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:03,811 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:03,812 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:03,813 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-07 18:32:03,818 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:03,838 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:03,855 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:03,874 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:03,989 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-07 18:32:03,990 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 4 variables, input treesize:69, output treesize:66 [2019-01-07 18:32:03,996 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:32:03,996 WARN L385 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-07 18:32:03,997 WARN L386 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-07 18:32:04,115 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:04,116 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-07 18:32:04,124 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:04,169 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:32:04,169 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:76, output treesize:50 [2019-01-07 18:32:04,188 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:32:04,188 WARN L385 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-07 18:32:04,189 WARN L386 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-07 18:32:04,489 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:04,490 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:04,491 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:04,492 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:04,494 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:04,495 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:04,496 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:04,497 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-07 18:32:04,537 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:04,658 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-07 18:32:04,658 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:60, output treesize:38 [2019-01-07 18:32:04,931 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:32:04,931 WARN L385 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-07 18:32:04,931 WARN L386 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-07 18:32:04,969 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-07 18:32:04,972 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-07 18:32:04,975 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-07 18:32:04,976 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-07 18:32:04,977 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:32:04,977 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:32:05,031 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-07 18:32:05,033 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-07 18:32:05,034 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-07 18:32:05,036 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-07 18:32:05,037 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:32:05,058 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:32:05,058 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 18:32:05,058 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:32:05,058 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 18:32:05,059 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:32:05,059 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:32:05,071 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:32:05,071 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:32:05,071 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:32:05,071 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:32:05,072 INFO L87 Difference]: Start difference. First operand 37 states and 141 transitions. Second operand 8 states. [2019-01-07 18:32:06,786 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:32:06,786 INFO L93 Difference]: Finished difference Result 69 states and 192 transitions. [2019-01-07 18:32:06,786 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 18:32:06,786 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 18:32:06,787 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:32:06,787 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:32:06,787 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 60 transitions. [2019-01-07 18:32:06,787 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:32:06,788 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 60 transitions. [2019-01-07 18:32:06,788 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 60 transitions. [2019-01-07 18:32:06,910 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-07 18:32:06,912 INFO L225 Difference]: With dead ends: 69 [2019-01-07 18:32:06,913 INFO L226 Difference]: Without dead ends: 68 [2019-01-07 18:32:06,913 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-07 18:32:06,913 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 68 states. [2019-01-07 18:32:07,265 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 68 to 39. [2019-01-07 18:32:07,265 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:32:07,265 INFO L82 GeneralOperation]: Start isEquivalent. First operand 68 states. Second operand 39 states. [2019-01-07 18:32:07,265 INFO L74 IsIncluded]: Start isIncluded. First operand 68 states. Second operand 39 states. [2019-01-07 18:32:07,266 INFO L87 Difference]: Start difference. First operand 68 states. Second operand 39 states. [2019-01-07 18:32:07,269 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:32:07,269 INFO L93 Difference]: Finished difference Result 68 states and 190 transitions. [2019-01-07 18:32:07,269 INFO L276 IsEmpty]: Start isEmpty. Operand 68 states and 190 transitions. [2019-01-07 18:32:07,270 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:32:07,270 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:32:07,270 INFO L74 IsIncluded]: Start isIncluded. First operand 39 states. Second operand 68 states. [2019-01-07 18:32:07,270 INFO L87 Difference]: Start difference. First operand 39 states. Second operand 68 states. [2019-01-07 18:32:07,272 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:32:07,272 INFO L93 Difference]: Finished difference Result 68 states and 190 transitions. [2019-01-07 18:32:07,273 INFO L276 IsEmpty]: Start isEmpty. Operand 68 states and 190 transitions. [2019-01-07 18:32:07,273 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:32:07,273 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:32:07,273 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:32:07,273 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:32:07,273 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 39 states. [2019-01-07 18:32:07,275 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 39 states to 39 states and 153 transitions. [2019-01-07 18:32:07,275 INFO L78 Accepts]: Start accepts. Automaton has 39 states and 153 transitions. Word has length 4 [2019-01-07 18:32:07,275 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:32:07,275 INFO L480 AbstractCegarLoop]: Abstraction has 39 states and 153 transitions. [2019-01-07 18:32:07,275 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:32:07,276 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 153 transitions. [2019-01-07 18:32:07,276 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 18:32:07,276 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:32:07,276 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1] [2019-01-07 18:32:07,276 INFO L423 AbstractCegarLoop]: === Iteration 18 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:32:07,277 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:32:07,277 INFO L82 PathProgramCache]: Analyzing trace with hash 29182896, now seen corresponding path program 2 times [2019-01-07 18:32:07,277 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:32:07,278 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:32:07,278 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:32:07,278 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:32:07,278 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:32:07,285 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:32:07,662 WARN L181 SmtUtils]: Spent 229.00 ms on a formula simplification. DAG size of input: 17 DAG size of output: 13 [2019-01-07 18:32:07,740 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-07 18:32:07,741 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-07 18:32:07,742 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-07 18:32:07,742 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-07 18:32:07,743 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-07 18:32:07,744 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 18:32:07,744 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:32:07,744 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:32:07,744 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-07 18:32:07,744 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-07 18:32:07,744 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:32:07,745 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 16 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 16 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:32:07,755 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-07 18:32:07,755 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-07 18:32:07,761 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-07 18:32:07,761 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-07 18:32:07,765 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:32:07,766 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:32:07,821 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-07 18:32:07,828 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 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-07 18:32:07,835 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:07,837 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:07,838 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-07 18:32:07,884 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:07,886 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:07,887 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:07,888 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-07 18:32:07,916 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:07,917 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:07,918 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:07,919 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:07,920 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-07 18:32:07,924 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:08,198 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:08,213 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:08,227 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:08,240 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:08,271 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:08,272 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 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-07 18:32:08,323 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:08,324 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:08,325 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-07 18:32:08,380 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:08,382 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:08,383 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:08,384 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:08,385 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-07 18:32:08,451 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:08,452 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:08,453 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:08,454 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:08,455 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:08,456 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:08,457 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-07 18:32:08,461 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:08,477 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:08,494 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:08,509 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:08,570 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-07 18:32:08,571 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 5 variables, input treesize:69, output treesize:66 [2019-01-07 18:32:08,582 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:32:08,582 WARN L385 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-07 18:32:08,582 WARN L386 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-07 18:32:08,672 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:08,673 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-07 18:32:08,677 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:08,717 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:32:08,717 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:76, output treesize:50 [2019-01-07 18:32:08,726 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:32:08,727 WARN L385 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-07 18:32:08,727 WARN L386 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-07 18:32:08,806 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:08,808 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:08,809 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:08,810 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:08,811 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:08,813 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:08,814 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:08,815 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-07 18:32:08,819 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:08,864 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-07 18:32:08,864 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:62, output treesize:50 [2019-01-07 18:32:08,895 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:32:08,896 WARN L385 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-07 18:32:08,896 WARN L386 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-07 18:32:08,962 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:08,964 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:08,965 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:08,966 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:08,967 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:08,968 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:08,969 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:08,971 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-07 18:32:08,976 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:09,016 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-07 18:32:09,016 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:62, output treesize:40 [2019-01-07 18:32:09,029 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:32:09,029 WARN L385 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-07 18:32:09,029 WARN L386 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-07 18:32:09,062 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-07 18:32:09,065 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-07 18:32:09,067 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-07 18:32:09,069 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-07 18:32:09,070 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-07 18:32:09,071 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:32:09,071 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:32:09,114 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-07 18:32:09,115 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-07 18:32:09,117 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-07 18:32:09,118 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-07 18:32:09,120 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-07 18:32:09,121 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:32:09,141 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:32:09,141 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 4, 4] total 10 [2019-01-07 18:32:09,141 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:32:09,142 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 5 [2019-01-07 18:32:09,142 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:32:09,142 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states. [2019-01-07 18:32:09,160 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:32:09,161 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2019-01-07 18:32:09,161 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2019-01-07 18:32:09,161 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=54, Invalid=78, Unknown=0, NotChecked=0, Total=132 [2019-01-07 18:32:09,161 INFO L87 Difference]: Start difference. First operand 39 states and 153 transitions. Second operand 9 states. [2019-01-07 18:32:10,544 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:32:10,544 INFO L93 Difference]: Finished difference Result 73 states and 219 transitions. [2019-01-07 18:32:10,545 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-07 18:32:10,545 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 5 [2019-01-07 18:32:10,545 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:32:10,545 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-01-07 18:32:10,545 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 76 transitions. [2019-01-07 18:32:10,545 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-01-07 18:32:10,546 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 76 transitions. [2019-01-07 18:32:10,546 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 76 transitions. [2019-01-07 18:32:10,669 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-07 18:32:10,670 INFO L225 Difference]: With dead ends: 73 [2019-01-07 18:32:10,671 INFO L226 Difference]: Without dead ends: 71 [2019-01-07 18:32:10,671 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-07 18:32:10,671 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 71 states. [2019-01-07 18:32:11,074 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 71 to 42. [2019-01-07 18:32:11,074 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:32:11,075 INFO L82 GeneralOperation]: Start isEquivalent. First operand 71 states. Second operand 42 states. [2019-01-07 18:32:11,075 INFO L74 IsIncluded]: Start isIncluded. First operand 71 states. Second operand 42 states. [2019-01-07 18:32:11,075 INFO L87 Difference]: Start difference. First operand 71 states. Second operand 42 states. [2019-01-07 18:32:11,077 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:32:11,078 INFO L93 Difference]: Finished difference Result 71 states and 216 transitions. [2019-01-07 18:32:11,078 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 216 transitions. [2019-01-07 18:32:11,078 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:32:11,078 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:32:11,078 INFO L74 IsIncluded]: Start isIncluded. First operand 42 states. Second operand 71 states. [2019-01-07 18:32:11,078 INFO L87 Difference]: Start difference. First operand 42 states. Second operand 71 states. [2019-01-07 18:32:11,080 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:32:11,080 INFO L93 Difference]: Finished difference Result 71 states and 216 transitions. [2019-01-07 18:32:11,080 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 216 transitions. [2019-01-07 18:32:11,081 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:32:11,081 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:32:11,081 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:32:11,081 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:32:11,081 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 42 states. [2019-01-07 18:32:11,082 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 42 states to 42 states and 171 transitions. [2019-01-07 18:32:11,083 INFO L78 Accepts]: Start accepts. Automaton has 42 states and 171 transitions. Word has length 5 [2019-01-07 18:32:11,083 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:32:11,083 INFO L480 AbstractCegarLoop]: Abstraction has 42 states and 171 transitions. [2019-01-07 18:32:11,083 INFO L481 AbstractCegarLoop]: Interpolant automaton has 9 states. [2019-01-07 18:32:11,083 INFO L276 IsEmpty]: Start isEmpty. Operand 42 states and 171 transitions. [2019-01-07 18:32:11,083 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 18:32:11,084 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:32:11,084 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 18:32:11,084 INFO L423 AbstractCegarLoop]: === Iteration 19 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:32:11,084 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:32:11,084 INFO L82 PathProgramCache]: Analyzing trace with hash 29185378, now seen corresponding path program 1 times [2019-01-07 18:32:11,084 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:32:11,085 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:32:11,085 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-07 18:32:11,085 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:32:11,086 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:32:11,091 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:32:11,272 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-07 18:32:11,273 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-07 18:32:11,276 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-07 18:32:11,276 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-07 18:32:11,278 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-07 18:32:11,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-07 18:32:11,278 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:32:11,278 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:32:11,278 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 18:32:11,278 INFO L207 CegarAbsIntRunner]: [0], [18], [20], [24], [25] [2019-01-07 18:32:11,279 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:32:11,279 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:32:11,291 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:32:11,291 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-07 18:32:11,291 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:32:11,291 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:32:11,291 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:32:11,292 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 17 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 17 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:32:11,303 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:32:11,303 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:32:11,307 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:32:11,310 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:32:11,311 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:32:11,403 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 21 [2019-01-07 18:32:11,411 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-07 18:32:11,421 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:11,423 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:11,424 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-07 18:32:11,438 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:11,439 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:11,440 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:11,441 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-07 18:32:11,464 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:11,466 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:11,470 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:11,471 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:11,472 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-07 18:32:11,477 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:11,508 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:11,524 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:11,537 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:11,550 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:11,574 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-07 18:32:11,604 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:11,606 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:11,607 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-07 18:32:11,665 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:11,666 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:11,669 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:11,670 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:11,671 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-07 18:32:11,743 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:11,745 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:11,746 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:11,747 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:11,748 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:11,750 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:11,751 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-07 18:32:11,755 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:11,774 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:11,790 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:11,809 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:11,847 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-07 18:32:11,847 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 4 variables, input treesize:61, output treesize:62 [2019-01-07 18:32:11,855 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:32:11,855 WARN L385 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-07 18:32:11,856 WARN L386 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-07 18:32:11,964 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:11,965 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-07 18:32:11,971 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:12,007 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:32:12,008 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:72, output treesize:46 [2019-01-07 18:32:12,042 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:32:12,043 WARN L385 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-07 18:32:12,043 WARN L386 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-07 18:32:12,126 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:12,127 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:12,129 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:12,130 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:12,132 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:12,133 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:12,134 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:12,135 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-07 18:32:12,141 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:12,177 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-07 18:32:12,178 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:58, output treesize:36 [2019-01-07 18:32:14,325 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:32:14,325 WARN L385 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-07 18:32:14,325 WARN L386 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-07 18:32:14,391 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-07 18:32:14,393 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-07 18:32:14,396 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-07 18:32:14,397 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-07 18:32:14,402 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-07 18:32:14,403 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:32:14,403 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:32:14,439 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-07 18:32:14,440 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-07 18:32:14,441 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-07 18:32:14,443 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-07 18:32:14,444 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-07 18:32:14,444 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:32:14,464 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:32:14,464 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-01-07 18:32:14,464 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:32:14,464 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 18:32:14,464 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:32:14,465 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:32:14,482 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:32:14,482 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:32:14,483 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:32:14,483 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=36, Invalid=54, Unknown=0, NotChecked=0, Total=90 [2019-01-07 18:32:14,483 INFO L87 Difference]: Start difference. First operand 42 states and 171 transitions. Second operand 8 states. [2019-01-07 18:32:16,874 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:32:16,874 INFO L93 Difference]: Finished difference Result 84 states and 258 transitions. [2019-01-07 18:32:16,874 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-07 18:32:16,874 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 18:32:16,875 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:32:16,875 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:32:16,875 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 79 transitions. [2019-01-07 18:32:16,875 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:32:16,876 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 79 transitions. [2019-01-07 18:32:16,876 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 79 transitions. [2019-01-07 18:32:16,995 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-07 18:32:16,997 INFO L225 Difference]: With dead ends: 84 [2019-01-07 18:32:16,997 INFO L226 Difference]: Without dead ends: 78 [2019-01-07 18:32:16,998 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 3 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 23 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=52, Invalid=80, Unknown=0, NotChecked=0, Total=132 [2019-01-07 18:32:16,998 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 78 states. [2019-01-07 18:32:17,816 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 78 to 48. [2019-01-07 18:32:17,816 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:32:17,816 INFO L82 GeneralOperation]: Start isEquivalent. First operand 78 states. Second operand 48 states. [2019-01-07 18:32:17,817 INFO L74 IsIncluded]: Start isIncluded. First operand 78 states. Second operand 48 states. [2019-01-07 18:32:17,817 INFO L87 Difference]: Start difference. First operand 78 states. Second operand 48 states. [2019-01-07 18:32:17,819 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:32:17,819 INFO L93 Difference]: Finished difference Result 78 states and 249 transitions. [2019-01-07 18:32:17,820 INFO L276 IsEmpty]: Start isEmpty. Operand 78 states and 249 transitions. [2019-01-07 18:32:17,820 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:32:17,820 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:32:17,820 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand 78 states. [2019-01-07 18:32:17,821 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 78 states. [2019-01-07 18:32:17,822 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:32:17,822 INFO L93 Difference]: Finished difference Result 78 states and 249 transitions. [2019-01-07 18:32:17,822 INFO L276 IsEmpty]: Start isEmpty. Operand 78 states and 249 transitions. [2019-01-07 18:32:17,823 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:32:17,823 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:32:17,823 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:32:17,823 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:32:17,823 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 48 states. [2019-01-07 18:32:17,824 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 48 states to 48 states and 218 transitions. [2019-01-07 18:32:17,824 INFO L78 Accepts]: Start accepts. Automaton has 48 states and 218 transitions. Word has length 5 [2019-01-07 18:32:17,824 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:32:17,825 INFO L480 AbstractCegarLoop]: Abstraction has 48 states and 218 transitions. [2019-01-07 18:32:17,825 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:32:17,825 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 218 transitions. [2019-01-07 18:32:17,825 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 18:32:17,825 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:32:17,825 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 18:32:17,826 INFO L423 AbstractCegarLoop]: === Iteration 20 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:32:17,826 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:32:17,826 INFO L82 PathProgramCache]: Analyzing trace with hash 29184942, now seen corresponding path program 1 times [2019-01-07 18:32:17,826 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:32:17,827 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:32:17,827 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:32:17,827 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:32:17,827 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:32:17,833 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:32:18,024 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-07 18:32:18,026 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-07 18:32:18,027 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-07 18:32:18,029 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-07 18:32:18,029 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-07 18:32:18,030 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:32:18,030 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:32:18,030 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:32:18,030 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 18:32:18,031 INFO L207 CegarAbsIntRunner]: [0], [10], [18], [20], [23] [2019-01-07 18:32:18,035 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:32:18,035 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:32:18,045 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:32:18,045 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-07 18:32:18,045 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:32:18,045 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:32:18,046 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:32:18,046 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 18 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 18 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:32:18,057 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:32:18,057 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:32:18,075 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:32:18,093 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:32:18,094 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:32:18,142 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-07 18:32:18,207 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-07 18:32:18,315 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:18,320 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:18,321 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-07 18:32:18,477 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:18,498 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:18,499 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:18,500 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-07 18:32:18,517 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-07 18:32:18,520 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:18,543 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:18,557 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:18,571 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:18,583 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:18,606 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:18,607 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-07 18:32:18,649 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:18,650 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:18,651 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-07 18:32:18,697 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:18,699 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:18,700 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:18,701 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:18,702 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-07 18:32:18,704 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:18,715 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:18,725 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:18,750 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-07 18:32:18,751 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 3 variables, input treesize:52, output treesize:50 [2019-01-07 18:32:18,758 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:32:18,758 WARN L385 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-07 18:32:18,758 WARN L386 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-07 18:32:18,830 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:18,840 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-07 18:32:18,844 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 2 xjuncts. [2019-01-07 18:32:18,975 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-07 18:32:18,975 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:60, output treesize:74 [2019-01-07 18:32:21,202 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:32:21,202 WARN L385 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-07 18:32:21,202 WARN L386 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-07 18:32:21,319 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:21,321 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:21,322 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:21,323 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:21,330 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:21,332 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:21,333 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:21,358 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-07 18:32:21,366 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 8 xjuncts. [2019-01-07 18:32:21,555 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:21,556 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:21,558 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:21,559 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:21,559 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:32:21,560 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-07 18:32:21,610 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:21,712 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-07 18:32:21,713 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 7 variables, input treesize:96, output treesize:167 [2019-01-07 18:32:24,169 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:32:24,170 WARN L385 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-07 18:32:24,170 WARN L386 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-07 18:32:24,320 WARN L181 SmtUtils]: Spent 113.00 ms on a formula simplification. DAG size of input: 88 DAG size of output: 69 [2019-01-07 18:32:24,380 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:24,381 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:24,382 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:24,383 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:24,385 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:24,386 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:24,387 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:24,388 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:24,389 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:24,390 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:32:24,393 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-07 18:32:24,395 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:24,508 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:24,509 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-07 18:32:24,512 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:24,592 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:24,593 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:24,594 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:24,596 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:24,597 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:24,598 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:24,599 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:24,600 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:24,601 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:24,602 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:32:24,603 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-07 18:32:24,606 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:24,687 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:24,689 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:24,690 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:24,691 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:24,692 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:24,694 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:24,695 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:24,696 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:24,697 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:24,698 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:24,699 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:32:24,700 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 37 treesize of output 73 [2019-01-07 18:32:24,704 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:24,786 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-07 18:32:24,786 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 16 variables, input treesize:167, output treesize:121 [2019-01-07 18:32:26,921 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:32:26,922 WARN L385 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-07 18:32:26,922 WARN L386 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-07 18:32:27,052 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-07 18:32:27,061 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-07 18:32:27,068 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-07 18:32:27,074 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-07 18:32:27,075 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-07 18:32:27,076 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:32:27,076 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:32:27,166 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-07 18:32:27,167 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-07 18:32:27,168 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-07 18:32:27,170 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-07 18:32:27,172 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-07 18:32:27,173 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:32:27,194 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:32:27,194 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-07 18:32:27,194 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:32:27,194 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-07 18:32:27,195 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:32:27,195 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 18:32:27,216 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:32:27,216 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 18:32:27,216 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 18:32:27,217 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=62, Invalid=120, Unknown=0, NotChecked=0, Total=182 [2019-01-07 18:32:27,217 INFO L87 Difference]: Start difference. First operand 48 states and 218 transitions. Second operand 10 states. [2019-01-07 18:32:29,506 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:32:29,507 INFO L93 Difference]: Finished difference Result 109 states and 322 transitions. [2019-01-07 18:32:29,507 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2019-01-07 18:32:29,507 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-07 18:32:29,507 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:32:29,508 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:32:29,508 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 103 transitions. [2019-01-07 18:32:29,508 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:32:29,509 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 103 transitions. [2019-01-07 18:32:29,509 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states and 103 transitions. [2019-01-07 18:32:29,709 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-07 18:32:29,712 INFO L225 Difference]: With dead ends: 109 [2019-01-07 18:32:29,712 INFO L226 Difference]: Without dead ends: 107 [2019-01-07 18:32:29,712 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 60 ImplicationChecksByTransitivity, 1.0s TimeCoverageRelationStatistics Valid=115, Invalid=227, Unknown=0, NotChecked=0, Total=342 [2019-01-07 18:32:29,713 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 107 states. [2019-01-07 18:32:30,335 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 107 to 51. [2019-01-07 18:32:30,335 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:32:30,336 INFO L82 GeneralOperation]: Start isEquivalent. First operand 107 states. Second operand 51 states. [2019-01-07 18:32:30,336 INFO L74 IsIncluded]: Start isIncluded. First operand 107 states. Second operand 51 states. [2019-01-07 18:32:30,336 INFO L87 Difference]: Start difference. First operand 107 states. Second operand 51 states. [2019-01-07 18:32:30,340 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:32:30,340 INFO L93 Difference]: Finished difference Result 107 states and 317 transitions. [2019-01-07 18:32:30,340 INFO L276 IsEmpty]: Start isEmpty. Operand 107 states and 317 transitions. [2019-01-07 18:32:30,340 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:32:30,340 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:32:30,340 INFO L74 IsIncluded]: Start isIncluded. First operand 51 states. Second operand 107 states. [2019-01-07 18:32:30,340 INFO L87 Difference]: Start difference. First operand 51 states. Second operand 107 states. [2019-01-07 18:32:30,343 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:32:30,343 INFO L93 Difference]: Finished difference Result 107 states and 317 transitions. [2019-01-07 18:32:30,343 INFO L276 IsEmpty]: Start isEmpty. Operand 107 states and 317 transitions. [2019-01-07 18:32:30,344 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:32:30,344 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:32:30,344 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:32:30,344 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:32:30,344 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 51 states. [2019-01-07 18:32:30,345 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 51 states to 51 states and 236 transitions. [2019-01-07 18:32:30,345 INFO L78 Accepts]: Start accepts. Automaton has 51 states and 236 transitions. Word has length 5 [2019-01-07 18:32:30,345 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:32:30,346 INFO L480 AbstractCegarLoop]: Abstraction has 51 states and 236 transitions. [2019-01-07 18:32:30,346 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 18:32:30,346 INFO L276 IsEmpty]: Start isEmpty. Operand 51 states and 236 transitions. [2019-01-07 18:32:30,346 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 18:32:30,346 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:32:30,346 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 18:32:30,346 INFO L423 AbstractCegarLoop]: === Iteration 21 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:32:30,347 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:32:30,347 INFO L82 PathProgramCache]: Analyzing trace with hash 29171924, now seen corresponding path program 1 times [2019-01-07 18:32:30,347 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:32:30,347 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:32:30,348 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:32:30,348 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:32:30,348 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:32:30,352 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:32:30,476 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-07 18:32:30,477 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-07 18:32:30,478 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-07 18:32:30,479 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-07 18:32:30,480 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-07 18:32:30,480 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 18:32:30,480 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:32:30,480 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:32:30,481 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 18:32:30,481 INFO L207 CegarAbsIntRunner]: [0], [6], [18], [24], [25] [2019-01-07 18:32:30,483 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:32:30,483 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:32:30,505 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:32:30,505 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-07 18:32:30,505 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:32:30,506 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:32:30,506 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:32:30,506 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 19 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 19 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:32:30,515 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:32:30,515 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:32:30,519 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:32:30,524 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:32:30,525 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:32:30,581 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-07 18:32:30,590 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 27 [2019-01-07 18:32:30,602 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:30,604 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:30,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 23 treesize of output 37 [2019-01-07 18:32:30,621 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:30,622 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:30,623 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:30,624 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-07 18:32:30,649 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-07 18:32:30,655 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:30,676 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:30,694 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:30,708 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:30,722 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:30,748 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:30,749 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-07 18:32:30,796 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:30,798 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:30,798 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-07 18:32:30,854 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:30,855 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:30,856 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:30,857 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:30,858 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-07 18:32:30,862 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:30,874 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:30,885 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:30,915 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-07 18:32:30,916 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:52, output treesize:50 [2019-01-07 18:32:30,940 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:32:30,940 WARN L385 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-07 18:32:30,941 WARN L386 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-07 18:32:31,091 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:31,092 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 18:32:31,099 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:31,121 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:32:31,121 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:55, output treesize:33 [2019-01-07 18:32:33,140 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:32:33,140 WARN L385 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-07 18:32:33,141 WARN L386 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-07 18:32:33,210 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:33,211 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:33,212 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:33,213 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:33,214 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:33,215 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:33,216 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-07 18:32:33,222 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:33,245 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:32:33,245 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:45, output treesize:27 [2019-01-07 18:32:33,950 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:32:33,950 WARN L385 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-07 18:32:33,950 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (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-07 18:32:34,002 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-07 18:32:34,004 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-07 18:32:34,008 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-07 18:32:34,009 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-07 18:32:34,010 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-07 18:32:34,010 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:32:34,010 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:32:34,068 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-07 18:32:34,068 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-07 18:32:34,070 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-07 18:32:34,071 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-07 18:32:34,075 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-07 18:32:34,075 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:32:34,096 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:32:34,096 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 18:32:34,096 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:32:34,096 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 18:32:34,096 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:32:34,096 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:32:34,112 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:32:34,112 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:32:34,112 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:32:34,112 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=40, Invalid=70, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:32:34,113 INFO L87 Difference]: Start difference. First operand 51 states and 236 transitions. Second operand 8 states. [2019-01-07 18:32:35,815 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:32:35,816 INFO L93 Difference]: Finished difference Result 77 states and 292 transitions. [2019-01-07 18:32:35,816 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 18:32:35,816 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 18:32:35,816 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:32:35,816 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:32:35,817 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 52 transitions. [2019-01-07 18:32:35,817 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:32:35,817 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 52 transitions. [2019-01-07 18:32:35,817 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 52 transitions. [2019-01-07 18:32:35,888 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 52 edges. 52 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:32:35,890 INFO L225 Difference]: With dead ends: 77 [2019-01-07 18:32:35,890 INFO L226 Difference]: Without dead ends: 76 [2019-01-07 18:32:35,891 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-07 18:32:35,891 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 76 states. [2019-01-07 18:32:36,401 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 76 to 55. [2019-01-07 18:32:36,401 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:32:36,401 INFO L82 GeneralOperation]: Start isEquivalent. First operand 76 states. Second operand 55 states. [2019-01-07 18:32:36,401 INFO L74 IsIncluded]: Start isIncluded. First operand 76 states. Second operand 55 states. [2019-01-07 18:32:36,402 INFO L87 Difference]: Start difference. First operand 76 states. Second operand 55 states. [2019-01-07 18:32:36,404 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:32:36,404 INFO L93 Difference]: Finished difference Result 76 states and 290 transitions. [2019-01-07 18:32:36,405 INFO L276 IsEmpty]: Start isEmpty. Operand 76 states and 290 transitions. [2019-01-07 18:32:36,405 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:32:36,405 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:32:36,405 INFO L74 IsIncluded]: Start isIncluded. First operand 55 states. Second operand 76 states. [2019-01-07 18:32:36,405 INFO L87 Difference]: Start difference. First operand 55 states. Second operand 76 states. [2019-01-07 18:32:36,407 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:32:36,407 INFO L93 Difference]: Finished difference Result 76 states and 290 transitions. [2019-01-07 18:32:36,407 INFO L276 IsEmpty]: Start isEmpty. Operand 76 states and 290 transitions. [2019-01-07 18:32:36,407 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:32:36,407 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:32:36,407 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:32:36,408 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:32:36,408 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 55 states. [2019-01-07 18:32:36,409 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 55 states to 55 states and 261 transitions. [2019-01-07 18:32:36,409 INFO L78 Accepts]: Start accepts. Automaton has 55 states and 261 transitions. Word has length 5 [2019-01-07 18:32:36,409 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:32:36,409 INFO L480 AbstractCegarLoop]: Abstraction has 55 states and 261 transitions. [2019-01-07 18:32:36,410 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:32:36,410 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 261 transitions. [2019-01-07 18:32:36,410 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 18:32:36,410 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:32:36,410 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 18:32:36,410 INFO L423 AbstractCegarLoop]: === Iteration 22 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:32:36,410 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:32:36,410 INFO L82 PathProgramCache]: Analyzing trace with hash 29175642, now seen corresponding path program 2 times [2019-01-07 18:32:36,411 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:32:36,411 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:32:36,411 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:32:36,411 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:32:36,411 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:32:36,418 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:32:36,582 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-07 18:32:36,584 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-07 18:32:36,585 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-07 18:32:36,586 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-07 18:32:36,588 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-07 18:32:36,588 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:32:36,588 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:32:36,589 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:32:36,589 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-07 18:32:36,589 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-07 18:32:36,589 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:32:36,589 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 20 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 20 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:32:36,599 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-07 18:32:36,599 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-07 18:32:36,605 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-07 18:32:36,605 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-07 18:32:36,610 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:32:36,611 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:32:36,669 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:36,670 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-07 18:32:36,724 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:36,725 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:36,726 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 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-07 18:32:36,791 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:36,793 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:36,794 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:36,795 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:36,797 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-07 18:32:36,871 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:36,872 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:36,873 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:36,875 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:36,876 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:36,877 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:36,878 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-07 18:32:36,881 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:36,900 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:36,919 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:36,938 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:36,964 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-07 18:32:37,024 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-07 18:32:37,039 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-07 18:32:37,058 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-07 18:32:37,079 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-07 18:32:37,084 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:37,112 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:37,128 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:37,141 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:37,154 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:37,190 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-07 18:32:37,191 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 3 variables, input treesize:69, output treesize:66 [2019-01-07 18:32:37,200 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:32:37,201 WARN L385 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-07 18:32:37,201 WARN L386 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-07 18:32:37,310 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:37,312 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-07 18:32:37,317 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:37,352 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:32:37,352 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:76, output treesize:50 [2019-01-07 18:32:39,644 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:32:39,645 WARN L385 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-07 18:32:39,645 WARN L386 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-07 18:32:39,767 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:39,769 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:39,770 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:39,771 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:39,772 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:39,773 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:32:39,774 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-07 18:32:39,779 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:39,817 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:32:39,817 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:62, output treesize:42 [2019-01-07 18:32:39,833 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:32:39,833 WARN L385 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-07 18:32:39,833 WARN L386 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-07 18:32:40,003 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:40,004 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:40,005 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:40,006 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:40,007 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:40,008 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:40,010 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:40,011 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:40,012 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:40,013 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-07 18:32:40,018 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:40,052 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-07 18:32:40,053 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:56, output treesize:38 [2019-01-07 18:32:40,215 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:32:40,216 WARN L385 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-07 18:32:40,216 WARN L386 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-07 18:32:40,250 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-07 18:32:40,252 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-07 18:32:40,255 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-07 18:32:40,257 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-07 18:32:40,258 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-07 18:32:40,259 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:32:40,259 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:32:40,359 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-07 18:32:40,360 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-07 18:32:40,362 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-07 18:32:40,365 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-07 18:32:40,367 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-07 18:32:40,368 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:32:40,388 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:32:40,389 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-07 18:32:40,389 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:32:40,389 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-07 18:32:40,389 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:32:40,389 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 18:32:40,408 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:32:40,409 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 18:32:40,409 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 18:32:40,409 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=56, Invalid=100, Unknown=0, NotChecked=0, Total=156 [2019-01-07 18:32:40,409 INFO L87 Difference]: Start difference. First operand 55 states and 261 transitions. Second operand 10 states. [2019-01-07 18:32:42,744 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:32:42,745 INFO L93 Difference]: Finished difference Result 88 states and 340 transitions. [2019-01-07 18:32:42,745 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-07 18:32:42,745 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-07 18:32:42,745 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:32:42,745 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:32:42,746 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 69 transitions. [2019-01-07 18:32:42,746 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:32:42,747 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 69 transitions. [2019-01-07 18:32:42,747 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 69 transitions. [2019-01-07 18:32:42,860 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-07 18:32:42,862 INFO L225 Difference]: With dead ends: 88 [2019-01-07 18:32:42,862 INFO L226 Difference]: Without dead ends: 83 [2019-01-07 18:32:42,862 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-07 18:32:42,863 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 83 states. [2019-01-07 18:32:43,932 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 83 to 61. [2019-01-07 18:32:43,933 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:32:43,933 INFO L82 GeneralOperation]: Start isEquivalent. First operand 83 states. Second operand 61 states. [2019-01-07 18:32:43,933 INFO L74 IsIncluded]: Start isIncluded. First operand 83 states. Second operand 61 states. [2019-01-07 18:32:43,933 INFO L87 Difference]: Start difference. First operand 83 states. Second operand 61 states. [2019-01-07 18:32:43,936 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:32:43,936 INFO L93 Difference]: Finished difference Result 83 states and 331 transitions. [2019-01-07 18:32:43,936 INFO L276 IsEmpty]: Start isEmpty. Operand 83 states and 331 transitions. [2019-01-07 18:32:43,937 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:32:43,937 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:32:43,937 INFO L74 IsIncluded]: Start isIncluded. First operand 61 states. Second operand 83 states. [2019-01-07 18:32:43,937 INFO L87 Difference]: Start difference. First operand 61 states. Second operand 83 states. [2019-01-07 18:32:43,939 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:32:43,939 INFO L93 Difference]: Finished difference Result 83 states and 331 transitions. [2019-01-07 18:32:43,939 INFO L276 IsEmpty]: Start isEmpty. Operand 83 states and 331 transitions. [2019-01-07 18:32:43,940 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:32:43,940 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:32:43,940 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:32:43,940 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:32:43,940 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 61 states. [2019-01-07 18:32:43,942 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 61 states to 61 states and 273 transitions. [2019-01-07 18:32:43,942 INFO L78 Accepts]: Start accepts. Automaton has 61 states and 273 transitions. Word has length 5 [2019-01-07 18:32:43,942 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:32:43,942 INFO L480 AbstractCegarLoop]: Abstraction has 61 states and 273 transitions. [2019-01-07 18:32:43,942 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 18:32:43,943 INFO L276 IsEmpty]: Start isEmpty. Operand 61 states and 273 transitions. [2019-01-07 18:32:43,943 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 18:32:43,943 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:32:43,943 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 18:32:43,943 INFO L423 AbstractCegarLoop]: === Iteration 23 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:32:43,944 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:32:43,944 INFO L82 PathProgramCache]: Analyzing trace with hash 29179612, now seen corresponding path program 1 times [2019-01-07 18:32:43,944 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:32:43,946 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:32:43,946 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-07 18:32:43,946 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:32:43,946 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:32:43,953 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:32:44,306 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-07 18:32:44,307 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-07 18:32:44,308 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-07 18:32:44,308 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-07 18:32:44,309 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-07 18:32:44,310 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:32:44,310 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:32:44,310 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:32:44,310 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 18:32:44,310 INFO L207 CegarAbsIntRunner]: [0], [14], [18], [24], [25] [2019-01-07 18:32:44,312 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:32:44,312 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:32:44,331 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:32:44,331 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-07 18:32:44,332 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:32:44,332 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:32:44,332 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:32:44,332 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 21 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 21 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:32:44,343 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:32:44,343 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:32:44,349 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:32:44,356 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:32:44,357 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:32:44,379 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-07 18:32:44,397 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-07 18:32:44,411 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:44,412 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:44,413 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-07 18:32:44,456 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:44,457 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:44,458 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:44,459 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-07 18:32:44,489 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-07 18:32:44,496 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:44,516 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:44,532 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:44,545 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:44,558 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:44,578 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-07 18:32:44,608 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:44,611 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:44,612 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-07 18:32:44,787 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:44,789 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:44,791 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:44,792 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:44,793 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-07 18:32:44,798 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:44,809 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:44,821 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:44,846 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-07 18:32:44,846 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:44, output treesize:46 [2019-01-07 18:32:44,855 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:32:44,855 WARN L385 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-07 18:32:44,855 WARN L386 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-07 18:32:44,944 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:44,945 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 28 [2019-01-07 18:32:44,951 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:44,964 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:32:44,965 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:38, output treesize:20 [2019-01-07 18:32:47,303 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:32:47,303 WARN L385 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-07 18:32:47,304 WARN L386 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-07 18:32:47,368 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:47,369 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:47,370 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:47,372 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:47,373 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:47,374 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 50 [2019-01-07 18:32:47,380 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:47,397 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:32:47,397 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:32, output treesize:18 [2019-01-07 18:32:47,434 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:32:47,435 WARN L385 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-07 18:32:47,435 WARN L386 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-07 18:32:47,475 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-07 18:32:47,476 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-07 18:32:47,479 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-07 18:32:47,480 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-07 18:32:47,480 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-07 18:32:47,481 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:32:47,481 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:32:47,547 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-07 18:32:47,549 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-07 18:32:47,552 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-07 18:32:47,555 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-07 18:32:47,557 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-07 18:32:47,558 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:32:47,577 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:32:47,578 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 18:32:47,578 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:32:47,578 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 18:32:47,578 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:32:47,578 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:32:47,592 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:32:47,592 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:32:47,592 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:32:47,592 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:32:47,593 INFO L87 Difference]: Start difference. First operand 61 states and 273 transitions. Second operand 8 states. [2019-01-07 18:32:49,516 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:32:49,516 INFO L93 Difference]: Finished difference Result 81 states and 298 transitions. [2019-01-07 18:32:49,516 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 18:32:49,516 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 18:32:49,516 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:32:49,516 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:32:49,517 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 51 transitions. [2019-01-07 18:32:49,517 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:32:49,517 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 51 transitions. [2019-01-07 18:32:49,517 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 51 transitions. [2019-01-07 18:32:49,578 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 51 edges. 51 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:32:49,580 INFO L225 Difference]: With dead ends: 81 [2019-01-07 18:32:49,580 INFO L226 Difference]: Without dead ends: 80 [2019-01-07 18:32:49,581 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-07 18:32:49,581 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 80 states. [2019-01-07 18:32:50,169 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 80 to 61. [2019-01-07 18:32:50,170 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:32:50,170 INFO L82 GeneralOperation]: Start isEquivalent. First operand 80 states. Second operand 61 states. [2019-01-07 18:32:50,170 INFO L74 IsIncluded]: Start isIncluded. First operand 80 states. Second operand 61 states. [2019-01-07 18:32:50,170 INFO L87 Difference]: Start difference. First operand 80 states. Second operand 61 states. [2019-01-07 18:32:50,172 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:32:50,172 INFO L93 Difference]: Finished difference Result 80 states and 296 transitions. [2019-01-07 18:32:50,172 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 296 transitions. [2019-01-07 18:32:50,173 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:32:50,173 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:32:50,173 INFO L74 IsIncluded]: Start isIncluded. First operand 61 states. Second operand 80 states. [2019-01-07 18:32:50,173 INFO L87 Difference]: Start difference. First operand 61 states. Second operand 80 states. [2019-01-07 18:32:50,175 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:32:50,175 INFO L93 Difference]: Finished difference Result 80 states and 296 transitions. [2019-01-07 18:32:50,175 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 296 transitions. [2019-01-07 18:32:50,176 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:32:50,176 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:32:50,176 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:32:50,176 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:32:50,176 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 61 states. [2019-01-07 18:32:50,178 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 61 states to 61 states and 273 transitions. [2019-01-07 18:32:50,178 INFO L78 Accepts]: Start accepts. Automaton has 61 states and 273 transitions. Word has length 5 [2019-01-07 18:32:50,178 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:32:50,178 INFO L480 AbstractCegarLoop]: Abstraction has 61 states and 273 transitions. [2019-01-07 18:32:50,178 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:32:50,179 INFO L276 IsEmpty]: Start isEmpty. Operand 61 states and 273 transitions. [2019-01-07 18:32:50,179 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 18:32:50,179 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:32:50,179 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 18:32:50,179 INFO L423 AbstractCegarLoop]: === Iteration 24 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:32:50,180 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:32:50,180 INFO L82 PathProgramCache]: Analyzing trace with hash 29179176, now seen corresponding path program 1 times [2019-01-07 18:32:50,180 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:32:50,180 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:32:50,181 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:32:50,181 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:32:50,181 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:32:50,187 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:32:50,590 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-07 18:32:50,592 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-07 18:32:50,593 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-07 18:32:50,594 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-07 18:32:50,595 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-07 18:32:50,596 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:32:50,596 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:32:50,596 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:32:50,596 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 18:32:50,597 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [18], [23] [2019-01-07 18:32:50,599 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:32:50,600 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:32:50,613 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:32:50,613 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-07 18:32:50,613 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:32:50,613 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:32:50,614 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:32:50,614 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 22 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 22 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:32:50,624 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:32:50,624 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:32:50,628 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:32:50,635 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:32:50,635 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:32:50,676 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:50,677 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-07 18:32:50,719 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:50,720 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:50,721 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-07 18:32:50,774 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:50,775 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:50,776 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:50,777 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:50,778 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-07 18:32:50,781 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:50,793 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:50,805 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:50,824 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 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-07 18:32:50,835 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-07 18:32:50,847 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-07 18:32:50,862 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-07 18:32:50,883 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-07 18:32:50,888 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:50,908 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:50,925 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:50,938 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:50,952 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:32:50,976 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-07 18:32:50,976 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 3 variables, input treesize:52, output treesize:50 [2019-01-07 18:32:50,984 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:32:50,985 WARN L385 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-07 18:32:50,985 WARN L386 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-07 18:32:51,087 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:51,089 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 18:32:51,093 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:51,112 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:32:51,112 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:55, output treesize:33 [2019-01-07 18:32:53,491 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:32:53,491 WARN L385 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-07 18:32:53,491 WARN L386 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-07 18:32:53,633 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:53,634 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:53,635 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:53,636 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:53,637 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:53,638 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:53,639 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-07 18:32:53,644 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:53,670 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:32:53,671 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:45, output treesize:27 [2019-01-07 18:32:55,291 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:32:55,291 WARN L385 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-07 18:32:55,291 WARN L386 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-07 18:32:55,346 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:55,347 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:55,348 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:55,350 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:55,351 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:55,352 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:55,353 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:55,353 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:32:55,354 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:32:55,355 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-07 18:32:55,361 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:32:55,388 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:32:55,389 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:37, output treesize:25 [2019-01-07 18:32:55,444 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:32:55,445 WARN L385 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-07 18:32:55,445 WARN L386 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-07 18:32:55,473 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-07 18:32:55,475 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-07 18:32:55,477 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-07 18:32:55,479 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-07 18:32:55,480 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-07 18:32:55,481 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:32:55,481 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:32:55,585 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-07 18:32:55,587 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-07 18:32:55,589 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-07 18:32:55,592 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-07 18:32:55,594 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-07 18:32:55,594 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:32:55,614 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:32:55,615 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-07 18:32:55,615 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:32:55,615 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-07 18:32:55,615 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:32:55,615 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 18:32:55,631 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:32:55,631 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 18:32:55,631 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 18:32:55,632 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=54, Invalid=102, Unknown=0, NotChecked=0, Total=156 [2019-01-07 18:32:55,632 INFO L87 Difference]: Start difference. First operand 61 states and 273 transitions. Second operand 10 states. [2019-01-07 18:32:57,901 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:32:57,902 INFO L93 Difference]: Finished difference Result 113 states and 415 transitions. [2019-01-07 18:32:57,902 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-07 18:32:57,902 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-07 18:32:57,902 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:32:57,902 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:32:57,903 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 79 transitions. [2019-01-07 18:32:57,903 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:32:57,903 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 79 transitions. [2019-01-07 18:32:57,904 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 79 transitions. [2019-01-07 18:32:58,022 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-07 18:32:58,025 INFO L225 Difference]: With dead ends: 113 [2019-01-07 18:32:58,025 INFO L226 Difference]: Without dead ends: 112 [2019-01-07 18:32:58,026 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 0 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 55 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=84, Invalid=156, Unknown=0, NotChecked=0, Total=240 [2019-01-07 18:32:58,026 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 112 states. [2019-01-07 18:32:59,302 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 112 to 60. [2019-01-07 18:32:59,303 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:32:59,303 INFO L82 GeneralOperation]: Start isEquivalent. First operand 112 states. Second operand 60 states. [2019-01-07 18:32:59,303 INFO L74 IsIncluded]: Start isIncluded. First operand 112 states. Second operand 60 states. [2019-01-07 18:32:59,303 INFO L87 Difference]: Start difference. First operand 112 states. Second operand 60 states. [2019-01-07 18:32:59,305 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:32:59,305 INFO L93 Difference]: Finished difference Result 112 states and 410 transitions. [2019-01-07 18:32:59,306 INFO L276 IsEmpty]: Start isEmpty. Operand 112 states and 410 transitions. [2019-01-07 18:32:59,306 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:32:59,306 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:32:59,306 INFO L74 IsIncluded]: Start isIncluded. First operand 60 states. Second operand 112 states. [2019-01-07 18:32:59,306 INFO L87 Difference]: Start difference. First operand 60 states. Second operand 112 states. [2019-01-07 18:32:59,309 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:32:59,309 INFO L93 Difference]: Finished difference Result 112 states and 410 transitions. [2019-01-07 18:32:59,309 INFO L276 IsEmpty]: Start isEmpty. Operand 112 states and 410 transitions. [2019-01-07 18:32:59,309 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:32:59,309 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:32:59,309 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:32:59,309 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:32:59,310 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 60 states. [2019-01-07 18:32:59,311 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 60 states to 60 states and 267 transitions. [2019-01-07 18:32:59,311 INFO L78 Accepts]: Start accepts. Automaton has 60 states and 267 transitions. Word has length 5 [2019-01-07 18:32:59,311 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:32:59,311 INFO L480 AbstractCegarLoop]: Abstraction has 60 states and 267 transitions. [2019-01-07 18:32:59,311 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 18:32:59,312 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 267 transitions. [2019-01-07 18:32:59,312 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 18:32:59,312 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:32:59,312 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 18:32:59,312 INFO L423 AbstractCegarLoop]: === Iteration 25 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:32:59,312 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:32:59,312 INFO L82 PathProgramCache]: Analyzing trace with hash 29242478, now seen corresponding path program 1 times [2019-01-07 18:32:59,312 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:32:59,313 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:32:59,313 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:32:59,313 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:32:59,313 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:32:59,318 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:32:59,774 WARN L181 SmtUtils]: Spent 227.00 ms on a formula simplification. DAG size of input: 24 DAG size of output: 13 [2019-01-07 18:32:59,863 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-07 18:32:59,865 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-07 18:32:59,866 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-07 18:32:59,867 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-07 18:32:59,868 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-07 18:32:59,869 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:32:59,869 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:32:59,869 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:32:59,869 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 18:32:59,869 INFO L207 CegarAbsIntRunner]: [0], [6], [18], [20], [23] [2019-01-07 18:32:59,873 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:32:59,873 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:32:59,922 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:32:59,922 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-07 18:32:59,922 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:32:59,922 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:32:59,922 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:32:59,923 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 23 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 23 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:32:59,933 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:32:59,933 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:32:59,938 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:32:59,941 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:32:59,942 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:33:00,068 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-07 18:33:00,082 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-07 18:33:00,097 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:00,098 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:00,099 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-07 18:33:00,120 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:00,122 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:00,124 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:00,125 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-07 18:33:00,158 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-07 18:33:00,167 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:00,192 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:00,212 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:00,229 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:00,244 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:00,276 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:00,277 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-07 18:33:00,356 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:00,358 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:00,359 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-07 18:33:00,427 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:00,428 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:00,430 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:00,431 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:00,432 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-07 18:33:00,437 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:00,451 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:00,464 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:00,510 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-07 18:33:00,510 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:52, output treesize:50 [2019-01-07 18:33:00,519 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:33:00,520 WARN L385 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-07 18:33:00,520 WARN L386 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-07 18:33:00,659 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:00,714 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-07 18:33:00,728 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 16 xjuncts. [2019-01-07 18:33:00,966 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-07 18:33:00,967 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:60, output treesize:199 [2019-01-07 18:33:03,794 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:33:03,795 WARN L385 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-07 18:33:03,795 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5, v_prenex_48, v_prenex_47, v_prenex_46, v_prenex_45, v_prenex_44, v_prenex_43, v_prenex_41, v_prenex_42]. (let ((.cse4 (select |#memory_int| ULTIMATE.start_main_p4)) (.cse3 (select |#memory_int| ULTIMATE.start_main_p1))) (let ((.cse0 (= .cse3 0)) (.cse2 (= .cse4 0)) (.cse1 (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (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)) (= 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) .cse1 .cse2) (and (not (= v_prenex_48 ULTIMATE.start_main_p4)) (= .cse3 1) (not (= v_prenex_48 v_prenex_47)) (not (= v_prenex_47 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| v_prenex_47)) (not (= v_prenex_48 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_48) 0) .cse1 .cse2) (and (not (= v_prenex_46 v_prenex_45)) .cse0 (= .cse4 1) (not (= v_prenex_45 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| v_prenex_45)) (not (= v_prenex_46 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_46) 0) .cse1) (and (not (= v_prenex_44 ULTIMATE.start_main_p4)) (= 1 (select |#memory_int| v_prenex_43)) .cse0 (not (= v_prenex_44 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_44) 0) .cse2 .cse1) (and .cse0 (not (= v_prenex_41 ULTIMATE.start_main_p1)) (not (= v_prenex_41 ULTIMATE.start_main_p4)) (= (select |#memory_int| v_prenex_42) 1) (= 0 (select |#memory_int| v_prenex_41)) (not (= v_prenex_42 ULTIMATE.start_main_p1)) .cse2 .cse1)))) [2019-01-07 18:33:03,962 WARN L181 SmtUtils]: Spent 115.00 ms on a formula simplification. DAG size of input: 100 DAG size of output: 63 [2019-01-07 18:33:04,031 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:04,032 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:04,033 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:04,034 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:04,035 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:04,036 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 47 treesize of output 65 [2019-01-07 18:33:04,041 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:04,120 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:04,122 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:04,123 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:04,124 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:04,125 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:04,126 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:33:04,127 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-07 18:33:04,131 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:04,198 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:04,199 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:04,201 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:04,202 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:04,203 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:04,204 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:04,205 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 73 [2019-01-07 18:33:04,208 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:04,281 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-07 18:33:04,282 INFO L202 ElimStorePlain]: Needed 4 recursive calls to eliminate 12 variables, input treesize:138, output treesize:96 [2019-01-07 18:33:06,507 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:33:06,508 WARN L385 uantifierElimination]: Input elimination task: ∃ [v_prenex_50, v_prenex_49, v_prenex_41, v_prenex_42, v_prenex_52, v_prenex_51, v_prenex_48, v_prenex_47, |v_#memory_int_130|, ULTIMATE.start_main_p4, v_prenex_46, v_prenex_45]. (or (let ((.cse0 (select v_prenex_50 v_prenex_49))) (and (= 0 .cse0) (not (= v_prenex_41 ULTIMATE.start_main_p1)) (not (= v_prenex_41 v_prenex_49)) (not (= ULTIMATE.start_main_p1 v_prenex_49)) (= 1 (select v_prenex_50 v_prenex_42)) (= 0 (select v_prenex_50 v_prenex_41)) (= 0 (select v_prenex_50 ULTIMATE.start_main_p1)) (not (= v_prenex_42 ULTIMATE.start_main_p1)) (= |#memory_int| (store v_prenex_50 v_prenex_49 (+ .cse0 (- 1)))))) (let ((.cse1 (select v_prenex_52 v_prenex_51))) (and (= (select v_prenex_52 v_prenex_48) 0) (not (= v_prenex_48 v_prenex_51)) (not (= v_prenex_48 ULTIMATE.start_main_p1)) (= 0 .cse1) (not (= v_prenex_47 v_prenex_51)) (not (= v_prenex_48 v_prenex_47)) (= 0 (select v_prenex_52 v_prenex_47)) (= 1 (select v_prenex_52 ULTIMATE.start_main_p1)) (= |#memory_int| (store v_prenex_52 v_prenex_51 (+ .cse1 (- 1)))))) (let ((.cse2 (select |v_#memory_int_130| ULTIMATE.start_main_p4))) (and (= |#memory_int| (store |v_#memory_int_130| ULTIMATE.start_main_p4 (+ .cse2 (- 1)))) (= 0 (select |v_#memory_int_130| ULTIMATE.start_main_p1)) (not (= v_prenex_46 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_130| v_prenex_45)) (not (= v_prenex_45 ULTIMATE.start_main_p1)) (= 1 .cse2) (not (= v_prenex_46 v_prenex_45)) (= 0 (select |v_#memory_int_130| v_prenex_46))))) [2019-01-07 18:33:06,508 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_42, v_prenex_41, v_prenex_49, v_prenex_45, ULTIMATE.start_main_p4, v_prenex_46, v_prenex_51, v_prenex_48, v_prenex_47]. (let ((.cse1 (select |#memory_int| ULTIMATE.start_main_p1))) (let ((.cse0 (= .cse1 0))) (or (and (= (select |#memory_int| v_prenex_42) 1) (not (= v_prenex_41 ULTIMATE.start_main_p1)) .cse0 (= 0 (select |#memory_int| v_prenex_41)) (= (- 1) (select |#memory_int| v_prenex_49))) (and (not (= v_prenex_45 ULTIMATE.start_main_p4)) (not (= v_prenex_46 ULTIMATE.start_main_p4)) .cse0 (= 0 (select |#memory_int| v_prenex_45)) (= (select |#memory_int| v_prenex_46) 0) (not (= v_prenex_46 ULTIMATE.start_main_p1)) (not (= v_prenex_45 ULTIMATE.start_main_p1)) (not (= v_prenex_46 v_prenex_45)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) (and (= (select |#memory_int| v_prenex_51) (- 1)) (= .cse1 1) (= 0 (select |#memory_int| v_prenex_48)) (not (= v_prenex_48 v_prenex_47)) (= 0 (select |#memory_int| v_prenex_47)))))) [2019-01-07 18:33:07,255 WARN L181 SmtUtils]: Spent 707.00 ms on a formula simplification that was a NOOP. DAG size: 65 [2019-01-07 18:33:07,350 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:07,351 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:07,352 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:07,354 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:07,355 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:07,356 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:07,357 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:07,358 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:07,359 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:07,360 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:07,360 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:33:07,361 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 37 treesize of output 83 [2019-01-07 18:33:07,364 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:07,451 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:07,452 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-07 18:33:07,455 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:07,513 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:07,515 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:07,516 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:07,517 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:07,518 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:07,519 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:07,520 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:07,521 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:07,522 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:07,523 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:07,525 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:07,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, 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-07 18:33:07,528 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:07,589 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-07 18:33:07,590 INFO L202 ElimStorePlain]: Needed 4 recursive calls to eliminate 12 variables, input treesize:130, output treesize:88 [2019-01-07 18:33:09,786 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:33:09,786 WARN L385 uantifierElimination]: Input elimination task: ∃ [v_prenex_54, v_prenex_51, v_prenex_48, v_prenex_47, v_prenex_53, v_prenex_45, ULTIMATE.start_main_p4, v_prenex_46, |v_#memory_int_131|, v_prenex_41, v_prenex_49, v_prenex_42]. (or (let ((.cse0 (select v_prenex_54 ULTIMATE.start_main_p1))) (and (= .cse0 1) (= (store v_prenex_54 ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (+ (select v_prenex_54 v_prenex_51) 1)) (not (= v_prenex_48 v_prenex_47)) (= 0 (select v_prenex_54 v_prenex_47)) (= 0 (select v_prenex_54 v_prenex_48)))) (let ((.cse1 (select v_prenex_53 ULTIMATE.start_main_p1))) (and (= 0 (select v_prenex_53 v_prenex_45)) (not (= v_prenex_45 ULTIMATE.start_main_p4)) (= (store v_prenex_53 ULTIMATE.start_main_p1 (+ .cse1 1)) |#memory_int|) (not (= v_prenex_46 ULTIMATE.start_main_p4)) (= 0 (select v_prenex_53 v_prenex_46)) (not (= v_prenex_46 ULTIMATE.start_main_p1)) (not (= v_prenex_45 ULTIMATE.start_main_p1)) (= .cse1 0) (not (= v_prenex_46 v_prenex_45)) (= 0 (select v_prenex_53 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (let ((.cse2 (select |v_#memory_int_131| ULTIMATE.start_main_p1))) (and (not (= v_prenex_41 ULTIMATE.start_main_p1)) (= (+ (select |v_#memory_int_131| v_prenex_49) 1) 0) (= (select |v_#memory_int_131| v_prenex_42) 1) (= (store |v_#memory_int_131| ULTIMATE.start_main_p1 (+ .cse2 1)) |#memory_int|) (= (select |v_#memory_int_131| v_prenex_41) 0) (= .cse2 0)))) [2019-01-07 18:33:09,787 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_42, v_prenex_41, v_prenex_49, v_prenex_48, v_prenex_47, v_prenex_51, v_prenex_45, ULTIMATE.start_main_p4, v_prenex_46]. (let ((.cse1 (select |#memory_int| ULTIMATE.start_main_p1))) (let ((.cse0 (= .cse1 1))) (or (and (= (select |#memory_int| v_prenex_42) 1) .cse0 (= 0 (select |#memory_int| v_prenex_41)) (not (= v_prenex_42 ULTIMATE.start_main_p1)) (= (+ (select |#memory_int| v_prenex_49) 1) 0)) (and (= 0 (select |#memory_int| v_prenex_48)) (not (= v_prenex_48 v_prenex_47)) (= .cse1 2) (= (+ (select |#memory_int| v_prenex_51) 1) 0) (= 0 (select |#memory_int| v_prenex_47))) (and (not (= v_prenex_45 ULTIMATE.start_main_p4)) .cse0 (not (= v_prenex_46 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| v_prenex_45)) (= (select |#memory_int| v_prenex_46) 0) (not (= v_prenex_46 v_prenex_45)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))) [2019-01-07 18:33:09,898 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-07 18:33:09,901 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 ((v_prenex_48 Int) (v_prenex_47 Int)) (and (= (select |#memory_int| v_prenex_48) 0) (not (= v_prenex_48 ULTIMATE.start_main_p1)) (not (= v_prenex_48 ULTIMATE.start_main_p4)) (not (= v_prenex_48 v_prenex_47)) (= 0 (select |#memory_int| v_prenex_47)) (not (= v_prenex_47 ULTIMATE.start_main_p4)))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_42 Int)) (and (= (select |#memory_int| v_prenex_42) 1) (not (= v_prenex_42 ULTIMATE.start_main_p1)))) (exists ((v_prenex_41 Int)) (and (not (= v_prenex_41 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| v_prenex_41)) (not (= v_prenex_41 ULTIMATE.start_main_p4)))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))) (and (= (select |#memory_int| ULTIMATE.start_main_p4) 1) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_45 Int) (v_prenex_46 Int)) (and (= 0 (select |#memory_int| v_prenex_45)) (= (select |#memory_int| v_prenex_46) 0) (not (= v_prenex_46 ULTIMATE.start_main_p1)) (not (= v_prenex_45 ULTIMATE.start_main_p1)) (not (= v_prenex_46 v_prenex_45))))))} is VALID [2019-01-07 18:33:09,909 INFO L273 TraceCheckUtils]: 2: Hoare triple {6685#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_48 Int) (v_prenex_47 Int)) (and (= (select |#memory_int| v_prenex_48) 0) (not (= v_prenex_48 ULTIMATE.start_main_p1)) (not (= v_prenex_48 ULTIMATE.start_main_p4)) (not (= v_prenex_48 v_prenex_47)) (= 0 (select |#memory_int| v_prenex_47)) (not (= v_prenex_47 ULTIMATE.start_main_p4)))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_42 Int)) (and (= (select |#memory_int| v_prenex_42) 1) (not (= v_prenex_42 ULTIMATE.start_main_p1)))) (exists ((v_prenex_41 Int)) (and (not (= v_prenex_41 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| v_prenex_41)) (not (= v_prenex_41 ULTIMATE.start_main_p4)))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))) (and (= (select |#memory_int| ULTIMATE.start_main_p4) 1) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_45 Int) (v_prenex_46 Int)) (and (= 0 (select |#memory_int| v_prenex_45)) (= (select |#memory_int| v_prenex_46) 0) (not (= v_prenex_46 ULTIMATE.start_main_p1)) (not (= v_prenex_45 ULTIMATE.start_main_p1)) (not (= v_prenex_46 v_prenex_45))))))} #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_41 Int)) (and (not (= v_prenex_41 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| v_prenex_41)))) (exists ((v_prenex_49 Int)) (= 0 (+ (select |#memory_int| v_prenex_49) 1))) (exists ((v_prenex_42 Int)) (= (select |#memory_int| v_prenex_42) 1))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_51 Int)) (= (+ (select |#memory_int| v_prenex_51) 1) 0)) (exists ((v_prenex_48 Int) (v_prenex_47 Int)) (and (= 0 (select |#memory_int| v_prenex_48)) (not (= v_prenex_48 v_prenex_47)) (= 0 (select |#memory_int| v_prenex_47))))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (v_prenex_45 Int) (v_prenex_46 Int)) (and (not (= v_prenex_45 ULTIMATE.start_main_p4)) (not (= v_prenex_46 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| v_prenex_45)) (= (select |#memory_int| v_prenex_46) 0) (not (= v_prenex_46 ULTIMATE.start_main_p1)) (not (= v_prenex_45 ULTIMATE.start_main_p1)) (not (= v_prenex_46 v_prenex_45)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))))))} is VALID [2019-01-07 18:33:09,914 INFO L273 TraceCheckUtils]: 3: Hoare triple {6689#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_41 Int)) (and (not (= v_prenex_41 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| v_prenex_41)))) (exists ((v_prenex_49 Int)) (= 0 (+ (select |#memory_int| v_prenex_49) 1))) (exists ((v_prenex_42 Int)) (= (select |#memory_int| v_prenex_42) 1))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_51 Int)) (= (+ (select |#memory_int| v_prenex_51) 1) 0)) (exists ((v_prenex_48 Int) (v_prenex_47 Int)) (and (= 0 (select |#memory_int| v_prenex_48)) (not (= v_prenex_48 v_prenex_47)) (= 0 (select |#memory_int| v_prenex_47))))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (v_prenex_45 Int) (v_prenex_46 Int)) (and (not (= v_prenex_45 ULTIMATE.start_main_p4)) (not (= v_prenex_46 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| v_prenex_45)) (= (select |#memory_int| v_prenex_46) 0) (not (= v_prenex_46 ULTIMATE.start_main_p1)) (not (= v_prenex_45 ULTIMATE.start_main_p1)) (not (= v_prenex_46 v_prenex_45)) (= (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]; {6693#(or (and (exists ((v_prenex_51 Int)) (= (+ (select |#memory_int| v_prenex_51) 1) 0)) (exists ((v_prenex_48 Int) (v_prenex_47 Int)) (and (= 0 (select |#memory_int| v_prenex_48)) (not (= v_prenex_48 v_prenex_47)) (= 0 (select |#memory_int| v_prenex_47)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 2)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (v_prenex_45 Int) (v_prenex_46 Int)) (and (not (= v_prenex_45 ULTIMATE.start_main_p4)) (not (= v_prenex_46 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| v_prenex_45)) (= (select |#memory_int| v_prenex_46) 0) (not (= v_prenex_46 v_prenex_45)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)))) (and (exists ((v_prenex_49 Int)) (= (+ (select |#memory_int| v_prenex_49) 1) 0)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_42 Int)) (and (= (select |#memory_int| v_prenex_42) 1) (not (= v_prenex_42 ULTIMATE.start_main_p1)))) (exists ((v_prenex_41 Int)) (= 0 (select |#memory_int| v_prenex_41)))))} is VALID [2019-01-07 18:33:09,915 INFO L273 TraceCheckUtils]: 4: Hoare triple {6693#(or (and (exists ((v_prenex_51 Int)) (= (+ (select |#memory_int| v_prenex_51) 1) 0)) (exists ((v_prenex_48 Int) (v_prenex_47 Int)) (and (= 0 (select |#memory_int| v_prenex_48)) (not (= v_prenex_48 v_prenex_47)) (= 0 (select |#memory_int| v_prenex_47)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 2)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (v_prenex_45 Int) (v_prenex_46 Int)) (and (not (= v_prenex_45 ULTIMATE.start_main_p4)) (not (= v_prenex_46 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| v_prenex_45)) (= (select |#memory_int| v_prenex_46) 0) (not (= v_prenex_46 v_prenex_45)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)))) (and (exists ((v_prenex_49 Int)) (= (+ (select |#memory_int| v_prenex_49) 1) 0)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_42 Int)) (and (= (select |#memory_int| v_prenex_42) 1) (not (= v_prenex_42 ULTIMATE.start_main_p1)))) (exists ((v_prenex_41 Int)) (= 0 (select |#memory_int| v_prenex_41)))))} assume !(#memory_int[main_p1] >= 0); {6673#false} is VALID [2019-01-07 18:33:09,916 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:33:09,916 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:33:09,948 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-07 18:33:09,949 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-07 18:33:09,950 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-07 18:33:09,951 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-07 18:33:09,953 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-07 18:33:09,954 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 4 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:33:09,973 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:33:09,973 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 10 [2019-01-07 18:33:09,974 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:33:09,974 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-07 18:33:09,974 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:33:09,974 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 18:33:09,999 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:33:09,999 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 18:33:09,999 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 18:33:10,000 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-01-07 18:33:10,000 INFO L87 Difference]: Start difference. First operand 60 states and 267 transitions. Second operand 10 states. [2019-01-07 18:33:14,053 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:33:14,054 INFO L93 Difference]: Finished difference Result 137 states and 516 transitions. [2019-01-07 18:33:14,054 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2019-01-07 18:33:14,054 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-07 18:33:14,054 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:33:14,054 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:33:14,055 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 107 transitions. [2019-01-07 18:33:14,055 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:33:14,055 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 107 transitions. [2019-01-07 18:33:14,055 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states and 107 transitions. [2019-01-07 18:33:14,283 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-07 18:33:14,287 INFO L225 Difference]: With dead ends: 137 [2019-01-07 18:33:14,287 INFO L226 Difference]: Without dead ends: 136 [2019-01-07 18:33:14,287 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 43 ImplicationChecksByTransitivity, 1.8s TimeCoverageRelationStatistics Valid=90, Invalid=150, Unknown=0, NotChecked=0, Total=240 [2019-01-07 18:33:14,288 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 136 states. [2019-01-07 18:33:16,166 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 136 to 93. [2019-01-07 18:33:16,166 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:33:16,166 INFO L82 GeneralOperation]: Start isEquivalent. First operand 136 states. Second operand 93 states. [2019-01-07 18:33:16,166 INFO L74 IsIncluded]: Start isIncluded. First operand 136 states. Second operand 93 states. [2019-01-07 18:33:16,166 INFO L87 Difference]: Start difference. First operand 136 states. Second operand 93 states. [2019-01-07 18:33:16,169 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:33:16,170 INFO L93 Difference]: Finished difference Result 136 states and 513 transitions. [2019-01-07 18:33:16,170 INFO L276 IsEmpty]: Start isEmpty. Operand 136 states and 513 transitions. [2019-01-07 18:33:16,170 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:33:16,170 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:33:16,170 INFO L74 IsIncluded]: Start isIncluded. First operand 93 states. Second operand 136 states. [2019-01-07 18:33:16,170 INFO L87 Difference]: Start difference. First operand 93 states. Second operand 136 states. [2019-01-07 18:33:16,174 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:33:16,174 INFO L93 Difference]: Finished difference Result 136 states and 513 transitions. [2019-01-07 18:33:16,175 INFO L276 IsEmpty]: Start isEmpty. Operand 136 states and 513 transitions. [2019-01-07 18:33:16,175 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:33:16,175 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:33:16,175 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:33:16,175 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:33:16,176 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 93 states. [2019-01-07 18:33:16,178 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 93 states to 93 states and 468 transitions. [2019-01-07 18:33:16,179 INFO L78 Accepts]: Start accepts. Automaton has 93 states and 468 transitions. Word has length 5 [2019-01-07 18:33:16,179 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:33:16,179 INFO L480 AbstractCegarLoop]: Abstraction has 93 states and 468 transitions. [2019-01-07 18:33:16,179 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 18:33:16,179 INFO L276 IsEmpty]: Start isEmpty. Operand 93 states and 468 transitions. [2019-01-07 18:33:16,179 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 18:33:16,180 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:33:16,180 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 18:33:16,180 INFO L423 AbstractCegarLoop]: === Iteration 26 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:33:16,180 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:33:16,180 INFO L82 PathProgramCache]: Analyzing trace with hash 29231506, now seen corresponding path program 1 times [2019-01-07 18:33:16,180 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:33:16,181 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:33:16,181 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:33:16,181 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:33:16,181 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:33:16,185 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:33:16,324 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-07 18:33:16,325 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-07 18:33:16,326 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-07 18:33:16,327 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-07 18:33:16,327 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-07 18:33:16,327 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 18:33:16,328 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:33:16,328 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:33:16,328 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 18:33:16,328 INFO L207 CegarAbsIntRunner]: [0], [6], [20], [24], [25] [2019-01-07 18:33:16,329 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:33:16,329 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:33:16,352 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:33:16,352 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-07 18:33:16,352 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:33:16,353 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:33:16,353 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:33:16,353 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 24 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 24 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:33:16,362 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:33:16,362 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:33:16,366 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:33:16,371 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:33:16,371 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:33:16,446 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:16,447 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-07 18:33:16,513 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:16,514 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:16,515 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-07 18:33:16,590 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:16,591 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:16,593 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:16,594 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:16,595 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-07 18:33:16,684 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:16,685 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:16,687 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:16,688 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:16,689 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:16,690 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:16,691 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-07 18:33:16,699 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:16,718 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:16,737 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:16,757 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:16,789 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-07 18:33:16,806 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-07 18:33:16,826 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-07 18:33:16,853 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 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-07 18:33:16,884 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-07 18:33:16,892 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:16,919 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:16,935 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:16,949 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:16,961 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:17,006 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-07 18:33:17,007 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 4 variables, input treesize:69, output treesize:66 [2019-01-07 18:33:17,019 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:33:17,019 WARN L385 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-07 18:33:17,019 WARN L386 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-07 18:33:17,168 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:17,169 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-07 18:33:17,178 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:17,237 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:33:17,237 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:76, output treesize:50 [2019-01-07 18:33:19,255 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:33:19,255 WARN L385 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-07 18:33:19,256 WARN L386 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-07 18:33:19,383 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:19,384 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:19,384 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:19,385 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:19,386 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:19,387 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:19,388 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:33:19,389 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-07 18:33:19,397 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:19,441 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-07 18:33:19,441 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:60, output treesize:42 [2019-01-07 18:33:19,530 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:33:19,530 WARN L385 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-07 18:33:19,530 WARN L386 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-07 18:33:19,623 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-07 18:33:19,625 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-07 18:33:19,626 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-07 18:33:19,627 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-07 18:33:19,628 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-07 18:33:19,629 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:33:19,629 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:33:19,732 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-07 18:33:19,733 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-07 18:33:19,734 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-07 18:33:19,736 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-07 18:33:19,738 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-07 18:33:19,738 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:33:19,758 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:33:19,758 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 18:33:19,758 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:33:19,758 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 18:33:19,759 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:33:19,759 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:33:19,777 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:33:19,777 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:33:19,778 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:33:19,778 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=43, Invalid=67, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:33:19,778 INFO L87 Difference]: Start difference. First operand 93 states and 468 transitions. Second operand 8 states. [2019-01-07 18:33:21,868 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:33:21,868 INFO L93 Difference]: Finished difference Result 120 states and 513 transitions. [2019-01-07 18:33:21,868 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 18:33:21,868 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 18:33:21,869 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:33:21,869 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:33:21,869 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 58 transitions. [2019-01-07 18:33:21,869 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:33:21,869 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 58 transitions. [2019-01-07 18:33:21,870 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 58 transitions. [2019-01-07 18:33:21,961 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-07 18:33:21,964 INFO L225 Difference]: With dead ends: 120 [2019-01-07 18:33:21,964 INFO L226 Difference]: Without dead ends: 119 [2019-01-07 18:33:21,964 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 2 SyntacticMatches, 1 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-01-07 18:33:21,965 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 119 states. [2019-01-07 18:33:23,955 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 119 to 96. [2019-01-07 18:33:23,956 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:33:23,956 INFO L82 GeneralOperation]: Start isEquivalent. First operand 119 states. Second operand 96 states. [2019-01-07 18:33:23,956 INFO L74 IsIncluded]: Start isIncluded. First operand 119 states. Second operand 96 states. [2019-01-07 18:33:23,956 INFO L87 Difference]: Start difference. First operand 119 states. Second operand 96 states. [2019-01-07 18:33:23,959 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:33:23,959 INFO L93 Difference]: Finished difference Result 119 states and 511 transitions. [2019-01-07 18:33:23,959 INFO L276 IsEmpty]: Start isEmpty. Operand 119 states and 511 transitions. [2019-01-07 18:33:23,960 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:33:23,960 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:33:23,960 INFO L74 IsIncluded]: Start isIncluded. First operand 96 states. Second operand 119 states. [2019-01-07 18:33:23,960 INFO L87 Difference]: Start difference. First operand 96 states. Second operand 119 states. [2019-01-07 18:33:23,963 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:33:23,963 INFO L93 Difference]: Finished difference Result 119 states and 511 transitions. [2019-01-07 18:33:23,963 INFO L276 IsEmpty]: Start isEmpty. Operand 119 states and 511 transitions. [2019-01-07 18:33:23,963 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:33:23,963 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:33:23,964 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:33:23,964 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:33:23,964 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 96 states. [2019-01-07 18:33:23,966 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 96 states to 96 states and 486 transitions. [2019-01-07 18:33:23,966 INFO L78 Accepts]: Start accepts. Automaton has 96 states and 486 transitions. Word has length 5 [2019-01-07 18:33:23,966 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:33:23,966 INFO L480 AbstractCegarLoop]: Abstraction has 96 states and 486 transitions. [2019-01-07 18:33:23,967 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:33:23,967 INFO L276 IsEmpty]: Start isEmpty. Operand 96 states and 486 transitions. [2019-01-07 18:33:23,967 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 18:33:23,967 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:33:23,967 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 18:33:23,967 INFO L423 AbstractCegarLoop]: === Iteration 27 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:33:23,968 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:33:23,968 INFO L82 PathProgramCache]: Analyzing trace with hash 29248868, now seen corresponding path program 1 times [2019-01-07 18:33:23,968 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:33:23,968 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:33:23,969 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:33:23,969 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:33:23,969 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:33:23,972 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:33:24,379 WARN L181 SmtUtils]: Spent 200.00 ms on a formula simplification that was a NOOP. DAG size: 16 [2019-01-07 18:33:24,714 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-07 18:33:24,727 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-07 18:33:24,742 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-07 18:33:24,751 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-07 18:33:24,767 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-07 18:33:24,767 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:33:24,768 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:33:24,768 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:33:24,768 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 18:33:24,768 INFO L207 CegarAbsIntRunner]: [0], [20], [24], [26], [27] [2019-01-07 18:33:24,770 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:33:24,770 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:33:24,841 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:33:24,841 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-07 18:33:24,841 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:33:24,842 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:33:24,842 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:33:24,842 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 25 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 25 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:33:24,859 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:33:24,860 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:33:24,879 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:33:24,897 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:33:24,898 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:33:25,142 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-07 18:33:25,225 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-07 18:33:25,295 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:25,296 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:25,297 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-07 18:33:25,354 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:25,355 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:25,355 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:25,356 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-07 18:33:25,378 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:25,381 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:25,382 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:25,383 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:25,384 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-07 18:33:25,393 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:25,422 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:25,438 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:25,451 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:25,466 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:25,490 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-07 18:33:25,526 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:25,528 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:25,529 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-07 18:33:25,593 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:25,595 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:25,597 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:25,598 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:25,599 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-07 18:33:25,680 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:25,681 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:25,682 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:25,683 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:25,683 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:25,685 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:25,686 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-07 18:33:25,693 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:25,711 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:25,727 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:25,746 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:25,794 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-07 18:33:25,794 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 5 variables, input treesize:61, output treesize:62 [2019-01-07 18:33:25,808 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:33:25,809 WARN L385 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-07 18:33:25,809 WARN L386 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-07 18:33:26,075 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:26,076 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-07 18:33:26,084 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:26,127 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-07 18:33:26,128 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:72, output treesize:46 [2019-01-07 18:33:26,148 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:33:26,149 WARN L385 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-07 18:33:26,149 WARN L386 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-07 18:33:26,299 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-07 18:33:26,302 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-07 18:33:26,303 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-07 18:33:26,305 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-07 18:33:26,306 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-07 18:33:26,306 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:33:26,306 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:33:26,332 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-07 18:33:26,333 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-07 18:33:26,333 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-07 18:33:26,334 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-07 18:33:26,335 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-07 18:33:26,336 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:33:26,355 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-01-07 18:33:26,355 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 5 [2019-01-07 18:33:26,355 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-07 18:33:26,355 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-01-07 18:33:26,355 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:33:26,356 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-07 18:33:26,361 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 5 edges. 5 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:33:26,362 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-07 18:33:26,362 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-07 18:33:26,362 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=20, Invalid=22, Unknown=0, NotChecked=0, Total=42 [2019-01-07 18:33:26,362 INFO L87 Difference]: Start difference. First operand 96 states and 486 transitions. Second operand 4 states. [2019-01-07 18:33:30,100 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:33:30,101 INFO L93 Difference]: Finished difference Result 105 states and 515 transitions. [2019-01-07 18:33:30,101 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-07 18:33:30,101 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-01-07 18:33:30,101 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:33:30,101 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-07 18:33:30,102 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 25 transitions. [2019-01-07 18:33:30,102 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-07 18:33:30,102 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 25 transitions. [2019-01-07 18:33:30,102 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 25 transitions. [2019-01-07 18:33:30,125 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-07 18:33:30,128 INFO L225 Difference]: With dead ends: 105 [2019-01-07 18:33:30,129 INFO L226 Difference]: Without dead ends: 104 [2019-01-07 18:33:30,129 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 5 SyntacticMatches, 0 SemanticMatches, 5 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 8 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=20, Invalid=22, Unknown=0, NotChecked=0, Total=42 [2019-01-07 18:33:30,129 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 104 states. [2019-01-07 18:33:31,690 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 104 to 103. [2019-01-07 18:33:31,690 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:33:31,690 INFO L82 GeneralOperation]: Start isEquivalent. First operand 104 states. Second operand 103 states. [2019-01-07 18:33:31,690 INFO L74 IsIncluded]: Start isIncluded. First operand 104 states. Second operand 103 states. [2019-01-07 18:33:31,690 INFO L87 Difference]: Start difference. First operand 104 states. Second operand 103 states. [2019-01-07 18:33:31,693 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:33:31,694 INFO L93 Difference]: Finished difference Result 104 states and 513 transitions. [2019-01-07 18:33:31,694 INFO L276 IsEmpty]: Start isEmpty. Operand 104 states and 513 transitions. [2019-01-07 18:33:31,694 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:33:31,695 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:33:31,695 INFO L74 IsIncluded]: Start isIncluded. First operand 103 states. Second operand 104 states. [2019-01-07 18:33:31,695 INFO L87 Difference]: Start difference. First operand 103 states. Second operand 104 states. [2019-01-07 18:33:31,698 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:33:31,699 INFO L93 Difference]: Finished difference Result 104 states and 513 transitions. [2019-01-07 18:33:31,699 INFO L276 IsEmpty]: Start isEmpty. Operand 104 states and 513 transitions. [2019-01-07 18:33:31,699 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:33:31,700 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:33:31,700 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:33:31,700 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:33:31,700 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 103 states. [2019-01-07 18:33:31,703 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 103 states to 103 states and 513 transitions. [2019-01-07 18:33:31,703 INFO L78 Accepts]: Start accepts. Automaton has 103 states and 513 transitions. Word has length 5 [2019-01-07 18:33:31,704 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:33:31,704 INFO L480 AbstractCegarLoop]: Abstraction has 103 states and 513 transitions. [2019-01-07 18:33:31,704 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-07 18:33:31,704 INFO L276 IsEmpty]: Start isEmpty. Operand 103 states and 513 transitions. [2019-01-07 18:33:31,704 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 18:33:31,705 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:33:31,705 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 18:33:31,705 INFO L423 AbstractCegarLoop]: === Iteration 28 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:33:31,705 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:33:31,705 INFO L82 PathProgramCache]: Analyzing trace with hash 29235162, now seen corresponding path program 3 times [2019-01-07 18:33:31,705 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:33:31,706 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:33:31,706 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:33:31,706 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:33:31,706 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:33:31,711 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:33:31,984 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-07 18:33:31,986 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-07 18:33:31,987 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-07 18:33:31,989 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-07 18:33:31,989 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-07 18:33:31,990 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:33:31,990 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:33:31,990 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:33:31,990 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-07 18:33:31,991 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-07 18:33:31,991 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:33:31,991 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 26 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 26 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:33:32,002 INFO L103 rtionOrderModulation]: Keeping assertion order TERMS_WITH_SMALL_CONSTANTS_FIRST [2019-01-07 18:33:32,002 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder TERMS_WITH_SMALL_CONSTANTS_FIRST (IT: FPandBP) [2019-01-07 18:33:32,006 INFO L249 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2019-01-07 18:33:32,006 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-07 18:33:32,012 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:33:32,012 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:33:32,061 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 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-07 18:33:32,075 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-07 18:33:32,086 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:32,088 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:32,089 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-07 18:33:32,103 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:32,105 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:32,106 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:32,107 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-07 18:33:32,131 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-07 18:33:32,136 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:32,158 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:32,174 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:32,189 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:32,201 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:32,229 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:32,230 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-07 18:33:32,287 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:32,288 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:32,289 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-07 18:33:32,344 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:32,346 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:32,347 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:32,348 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:32,349 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-07 18:33:32,352 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:32,364 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:32,375 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:32,405 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-07 18:33:32,405 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 3 variables, input treesize:52, output treesize:50 [2019-01-07 18:33:32,412 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:33:32,413 WARN L385 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-07 18:33:32,413 WARN L386 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-07 18:33:32,512 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:32,543 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-07 18:33:32,555 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 16 xjuncts. [2019-01-07 18:33:32,743 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-07 18:33:32,744 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:60, output treesize:199 [2019-01-07 18:33:35,703 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:33:35,703 WARN L385 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-07 18:33:35,703 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_57, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, v_prenex_56, v_prenex_55, v_prenex_58]. (let ((.cse8 (select |#memory_int| ULTIMATE.start_main_p4)) (.cse7 (select |#memory_int| ULTIMATE.start_main_p2)) (.cse6 (select |#memory_int| ULTIMATE.start_main_p1))) (let ((.cse0 (= .cse6 0)) (.cse1 (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1))) (.cse2 (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4))) (.cse3 (= 0 .cse7)) (.cse5 (= .cse8 0)) (.cse4 (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (or (and (not (= v_prenex_57 ULTIMATE.start_main_p4)) (not (= v_prenex_57 ULTIMATE.start_main_p2)) .cse0 .cse1 .cse2 (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) .cse3 (not (= v_prenex_57 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_57) 0) .cse4 .cse5) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= .cse6 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) .cse2 .cse3 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) .cse4 .cse5) (and (not (= v_prenex_56 ULTIMATE.start_main_p4)) (= 1 .cse7) .cse0 (not (= v_prenex_56 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_56) 0) .cse5 .cse4) (and (not (= v_prenex_55 ULTIMATE.start_main_p2)) .cse0 (= .cse8 1) .cse1 .cse3 (not (= v_prenex_55 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_55) 0) .cse4) (and .cse0 .cse1 .cse2 (= (select |#memory_int| v_prenex_58) 1) .cse3 (not (= v_prenex_58 ULTIMATE.start_main_p1)) .cse5 .cse4)))) [2019-01-07 18:33:35,936 WARN L181 SmtUtils]: Spent 132.00 ms on a formula simplification. DAG size of input: 78 DAG size of output: 62 [2019-01-07 18:33:36,036 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:36,038 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:36,039 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:36,040 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:36,041 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:36,042 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:36,043 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-07 18:33:36,047 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:36,151 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:36,152 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:36,153 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:36,154 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:36,155 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:33:36,156 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-07 18:33:36,161 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:36,258 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:36,259 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:36,260 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:36,261 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:36,262 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:36,263 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:36,264 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-07 18:33:36,268 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:36,365 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:36,366 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:36,367 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:36,368 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:36,369 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:36,370 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:36,371 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-07 18:33:36,377 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:36,459 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-07 18:33:36,460 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 12 variables, input treesize:181, output treesize:121 [2019-01-07 18:33:38,590 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:33:38,591 WARN L385 uantifierElimination]: Input elimination task: ∃ [v_prenex_60, v_prenex_59, v_prenex_55, |v_#memory_int_145|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, v_prenex_64, v_prenex_63, v_prenex_56, v_prenex_62, v_prenex_61, v_prenex_58]. (let ((.cse3 (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (or (let ((.cse0 (select v_prenex_60 v_prenex_59))) (and (not (= v_prenex_59 ULTIMATE.start_main_p1)) (= 0 .cse0) (= (store v_prenex_60 v_prenex_59 (+ .cse0 (- 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))) (let ((.cse1 (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)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_145| ULTIMATE.start_main_p3)) (= 1 (select |v_#memory_int_145| ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (store |v_#memory_int_145| ULTIMATE.start_main_p2 (+ .cse1 (- 1))) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 .cse1))) (let ((.cse2 (select v_prenex_64 v_prenex_63))) (and (= 1 .cse2) (= (store v_prenex_64 v_prenex_63 (+ .cse2 (- 1))) |#memory_int|) (= 0 (select v_prenex_64 ULTIMATE.start_main_p4)) (not (= v_prenex_56 ULTIMATE.start_main_p4)) (not (= v_prenex_56 ULTIMATE.start_main_p1)) (= (select v_prenex_64 v_prenex_56) 0) (= 0 (select v_prenex_64 ULTIMATE.start_main_p1)) .cse3)) (let ((.cse4 (select v_prenex_62 v_prenex_61))) (and (not (= v_prenex_61 ULTIMATE.start_main_p4)) (= 1 (select v_prenex_62 v_prenex_58)) (not (= v_prenex_61 ULTIMATE.start_main_p1)) (= 0 (select v_prenex_62 ULTIMATE.start_main_p4)) (not (= v_prenex_58 ULTIMATE.start_main_p1)) (= 0 (select v_prenex_62 ULTIMATE.start_main_p1)) (= 0 .cse4) (= (store v_prenex_62 v_prenex_61 (+ .cse4 (- 1))) |#memory_int|) .cse3)))) [2019-01-07 18:33:38,591 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_59, v_prenex_55, v_prenex_61, v_prenex_58, v_prenex_63, v_prenex_56, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |#memory_int| ULTIMATE.start_main_p4)) (.cse4 (select |#memory_int| ULTIMATE.start_main_p1))) (let ((.cse1 (= .cse4 0)) (.cse2 (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))) (.cse3 (= .cse0 0))) (or (and (= (- 1) (select |#memory_int| v_prenex_59)) (= 0 (select |#memory_int| v_prenex_55)) (= .cse0 1) .cse1 (not (= v_prenex_55 ULTIMATE.start_main_p1))) (and (= (- 1) (select |#memory_int| v_prenex_61)) .cse1 (= 1 (select |#memory_int| v_prenex_58)) .cse2 .cse3) (and (not (= v_prenex_63 ULTIMATE.start_main_p4)) (= (select |#memory_int| v_prenex_63) 0) .cse1 (not (= v_prenex_56 v_prenex_63)) (not (= v_prenex_56 ULTIMATE.start_main_p4)) (not (= v_prenex_56 ULTIMATE.start_main_p1)) (not (= v_prenex_63 ULTIMATE.start_main_p1)) .cse2 .cse3 (= (select |#memory_int| v_prenex_56) 0)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= .cse4 1) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) .cse3)))) [2019-01-07 18:33:38,773 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:38,774 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:38,775 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:38,776 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:38,778 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:38,779 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:38,780 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:38,781 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:38,782 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:38,783 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:38,784 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:33:38,785 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-07 18:33:38,788 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:38,899 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:38,901 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 59 [2019-01-07 18:33:38,905 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:38,989 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:38,991 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:38,992 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:38,993 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:38,994 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:38,995 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:38,997 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:38,998 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:38,999 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:38,999 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:33:39,000 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 37 treesize of output 73 [2019-01-07 18:33:39,005 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:39,090 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:39,091 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:39,092 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:39,093 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:39,095 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:39,096 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:39,097 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:39,098 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:39,099 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:39,100 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:39,101 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:33:39,102 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 78 [2019-01-07 18:33:39,108 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:39,193 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-07 18:33:39,193 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 16 variables, input treesize:167, output treesize:123 [2019-01-07 18:33:41,344 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:33:41,345 WARN L385 uantifierElimination]: Input elimination task: ∃ [v_prenex_70, v_prenex_69, v_prenex_55, v_prenex_59, v_prenex_66, v_prenex_65, v_prenex_63, v_prenex_56, v_prenex_68, v_prenex_67, v_prenex_58, v_prenex_61, |v_#memory_int_146|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (or (let ((.cse0 (select v_prenex_70 v_prenex_69))) (and (= 0 (select v_prenex_70 v_prenex_55)) (= (select v_prenex_70 ULTIMATE.start_main_p1) 0) (= |#memory_int| (store v_prenex_70 v_prenex_69 (+ .cse0 (- 1)))) (= (+ (select v_prenex_70 v_prenex_59) 1) 0) (not (= v_prenex_55 ULTIMATE.start_main_p1)) (= 1 .cse0))) (let ((.cse1 (select v_prenex_66 v_prenex_65))) (and (= 0 (select v_prenex_66 v_prenex_63)) (not (= ULTIMATE.start_main_p1 v_prenex_65)) (not (= v_prenex_56 v_prenex_63)) (not (= v_prenex_63 v_prenex_65)) (= 0 .cse1) (= |#memory_int| (store v_prenex_66 v_prenex_65 (+ .cse1 (- 1)))) (not (= v_prenex_56 ULTIMATE.start_main_p1)) (= (select v_prenex_66 ULTIMATE.start_main_p1) 0) (not (= v_prenex_56 v_prenex_65)) (not (= v_prenex_63 ULTIMATE.start_main_p1)) (= 0 (select v_prenex_66 v_prenex_56)))) (let ((.cse2 (select v_prenex_68 v_prenex_67))) (and (= 0 .cse2) (not (= ULTIMATE.start_main_p1 v_prenex_67)) (= (select v_prenex_68 ULTIMATE.start_main_p1) 0) (= (select v_prenex_68 v_prenex_58) 1) (= |#memory_int| (store v_prenex_68 v_prenex_67 (+ .cse2 (- 1)))) (= 0 (+ (select v_prenex_68 v_prenex_61) 1)))) (let ((.cse3 (select |v_#memory_int_146| ULTIMATE.start_main_p4))) (and (= (+ (select |v_#memory_int_146| ULTIMATE.start_main_p2) 1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_146| ULTIMATE.start_main_p1) 1) (= 0 .cse3) (= 0 (select |v_#memory_int_146| ULTIMATE.start_main_p3)) (= |#memory_int| (store |v_#memory_int_146| ULTIMATE.start_main_p4 (+ .cse3 (- 1))))))) [2019-01-07 18:33:41,345 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_63, v_prenex_56, v_prenex_65, v_prenex_69, v_prenex_55, v_prenex_59, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, v_prenex_67, v_prenex_61, v_prenex_58]. (let ((.cse1 (select |#memory_int| ULTIMATE.start_main_p1))) (let ((.cse0 (= .cse1 0))) (or (and (= (select |#memory_int| v_prenex_63) 0) .cse0 (not (= v_prenex_56 v_prenex_63)) (= (- 1) (select |#memory_int| v_prenex_65)) (not (= v_prenex_56 ULTIMATE.start_main_p1)) (not (= v_prenex_63 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_56) 0)) (and (not (= v_prenex_69 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| v_prenex_55)) .cse0 (not (= v_prenex_55 ULTIMATE.start_main_p1)) (= (+ (select |#memory_int| v_prenex_59) 1) 0) (not (= v_prenex_55 v_prenex_69)) (= 0 (select |#memory_int| v_prenex_69))) (and (= .cse1 1) (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) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) (and (= (select |#memory_int| v_prenex_67) (- 1)) .cse0 (not (= v_prenex_67 v_prenex_61)) (= (+ (select |#memory_int| v_prenex_61) 1) 0) (= 1 (select |#memory_int| v_prenex_58)))))) [2019-01-07 18:33:41,478 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]; {8640#(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-07 18:33:41,481 INFO L273 TraceCheckUtils]: 1: Hoare triple {8640#(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_p5 := #memory_int[main_p5] + 1]; {8644#(or (and (exists ((v_prenex_58 Int)) (and (not (= v_prenex_58 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_58) 1))) (= (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))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (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))) (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)) (and (= (select |#memory_int| ULTIMATE.start_main_p4) 1) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((v_prenex_55 Int)) (and (= (select |#memory_int| v_prenex_55) 0) (not (= v_prenex_55 ULTIMATE.start_main_p1)) (not (= v_prenex_55 ULTIMATE.start_main_p2)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2))) (and (= 1 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_56 Int)) (and (not (= v_prenex_56 ULTIMATE.start_main_p4)) (not (= v_prenex_56 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_56) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))))} is VALID [2019-01-07 18:33:41,487 INFO L273 TraceCheckUtils]: 2: Hoare triple {8644#(or (and (exists ((v_prenex_58 Int)) (and (not (= v_prenex_58 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_58) 1))) (= (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))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (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))) (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)) (and (= (select |#memory_int| ULTIMATE.start_main_p4) 1) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((v_prenex_55 Int)) (and (= (select |#memory_int| v_prenex_55) 0) (not (= v_prenex_55 ULTIMATE.start_main_p1)) (not (= v_prenex_55 ULTIMATE.start_main_p2)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2))) (and (= 1 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_56 Int)) (and (not (= v_prenex_56 ULTIMATE.start_main_p4)) (not (= v_prenex_56 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_56) 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]; {8648#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (exists ((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)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_56 Int) (v_prenex_63 Int)) (and (not (= v_prenex_63 ULTIMATE.start_main_p4)) (= (select |#memory_int| v_prenex_63) 0) (not (= v_prenex_56 v_prenex_63)) (not (= v_prenex_56 ULTIMATE.start_main_p4)) (not (= v_prenex_56 ULTIMATE.start_main_p1)) (not (= v_prenex_63 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_56) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_58 Int)) (= 1 (select |#memory_int| v_prenex_58))) (exists ((v_prenex_61 Int)) (= 0 (+ (select |#memory_int| v_prenex_61) 1))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))) (and (= (select |#memory_int| ULTIMATE.start_main_p4) 1) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_55 Int)) (and (= 0 (select |#memory_int| v_prenex_55)) (not (= v_prenex_55 ULTIMATE.start_main_p1)))) (exists ((v_prenex_59 Int)) (= 0 (+ (select |#memory_int| v_prenex_59) 1)))))} is VALID [2019-01-07 18:33:41,494 INFO L273 TraceCheckUtils]: 3: Hoare triple {8648#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (exists ((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)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_56 Int) (v_prenex_63 Int)) (and (not (= v_prenex_63 ULTIMATE.start_main_p4)) (= (select |#memory_int| v_prenex_63) 0) (not (= v_prenex_56 v_prenex_63)) (not (= v_prenex_56 ULTIMATE.start_main_p4)) (not (= v_prenex_56 ULTIMATE.start_main_p1)) (not (= v_prenex_63 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_56) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_58 Int)) (= 1 (select |#memory_int| v_prenex_58))) (exists ((v_prenex_61 Int)) (= 0 (+ (select |#memory_int| v_prenex_61) 1))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))) (and (= (select |#memory_int| ULTIMATE.start_main_p4) 1) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_55 Int)) (and (= 0 (select |#memory_int| v_prenex_55)) (not (= v_prenex_55 ULTIMATE.start_main_p1)))) (exists ((v_prenex_59 Int)) (= 0 (+ (select |#memory_int| v_prenex_59) 1)))))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {8652#(or (and (exists ((v_prenex_67 Int) (v_prenex_61 Int)) (and (= (+ (select |#memory_int| v_prenex_67) 1) 0) (not (= v_prenex_67 v_prenex_61)) (= (+ (select |#memory_int| v_prenex_61) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_58 Int)) (= 1 (select |#memory_int| v_prenex_58)))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_55 Int) (v_prenex_69 Int)) (and (not (= v_prenex_69 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| v_prenex_55)) (not (= v_prenex_55 ULTIMATE.start_main_p1)) (not (= v_prenex_55 v_prenex_69)) (= 0 (select |#memory_int| v_prenex_69)))) (exists ((v_prenex_59 Int)) (= (+ (select |#memory_int| v_prenex_59) 1) 0))) (and (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (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-07 18:33:41,496 INFO L273 TraceCheckUtils]: 4: Hoare triple {8652#(or (and (exists ((v_prenex_67 Int) (v_prenex_61 Int)) (and (= (+ (select |#memory_int| v_prenex_67) 1) 0) (not (= v_prenex_67 v_prenex_61)) (= (+ (select |#memory_int| v_prenex_61) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_58 Int)) (= 1 (select |#memory_int| v_prenex_58)))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_55 Int) (v_prenex_69 Int)) (and (not (= v_prenex_69 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| v_prenex_55)) (not (= v_prenex_55 ULTIMATE.start_main_p1)) (not (= v_prenex_55 v_prenex_69)) (= 0 (select |#memory_int| v_prenex_69)))) (exists ((v_prenex_59 Int)) (= (+ (select |#memory_int| v_prenex_59) 1) 0))) (and (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (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); {8632#false} is VALID [2019-01-07 18:33:41,496 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:33:41,496 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:33:41,579 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-07 18:33:41,580 INFO L273 TraceCheckUtils]: 3: Hoare triple {8659#(<= 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]; {8636#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-07 18:33:41,582 INFO L273 TraceCheckUtils]: 2: Hoare triple {8663#(<= 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]; {8659#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 18:33:41,584 INFO L273 TraceCheckUtils]: 1: Hoare triple {8667#(<= 0 (select (store (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_p4 (+ (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_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {8663#(<= 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-07 18:33:41,587 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]; {8667#(<= 0 (select (store (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_p4 (+ (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_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 18:33:41,587 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:33:41,608 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:33:41,608 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-07 18:33:41,608 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:33:41,608 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-07 18:33:41,608 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:33:41,608 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 18:33:41,633 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:33:41,634 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 18:33:41,634 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 18:33:41,634 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=58, Invalid=98, Unknown=0, NotChecked=0, Total=156 [2019-01-07 18:33:41,634 INFO L87 Difference]: Start difference. First operand 103 states and 513 transitions. Second operand 10 states. [2019-01-07 18:33:43,353 WARN L181 SmtUtils]: Spent 127.00 ms on a formula simplification. DAG size of input: 79 DAG size of output: 72 [2019-01-07 18:33:45,400 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:33:45,400 INFO L93 Difference]: Finished difference Result 131 states and 560 transitions. [2019-01-07 18:33:45,400 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 18:33:45,400 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-07 18:33:45,400 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:33:45,400 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:33:45,401 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 58 transitions. [2019-01-07 18:33:45,401 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:33:45,401 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 58 transitions. [2019-01-07 18:33:45,401 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 58 transitions. [2019-01-07 18:33:45,551 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-07 18:33:45,554 INFO L225 Difference]: With dead ends: 131 [2019-01-07 18:33:45,554 INFO L226 Difference]: Without dead ends: 130 [2019-01-07 18:33:45,554 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 51 ImplicationChecksByTransitivity, 1.0s TimeCoverageRelationStatistics Valid=77, Invalid=133, Unknown=0, NotChecked=0, Total=210 [2019-01-07 18:33:45,554 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 130 states. [2019-01-07 18:33:46,359 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 130 to 41. [2019-01-07 18:33:46,359 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:33:46,359 INFO L82 GeneralOperation]: Start isEquivalent. First operand 130 states. Second operand 41 states. [2019-01-07 18:33:46,359 INFO L74 IsIncluded]: Start isIncluded. First operand 130 states. Second operand 41 states. [2019-01-07 18:33:46,360 INFO L87 Difference]: Start difference. First operand 130 states. Second operand 41 states. [2019-01-07 18:33:46,362 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:33:46,363 INFO L93 Difference]: Finished difference Result 130 states and 551 transitions. [2019-01-07 18:33:46,363 INFO L276 IsEmpty]: Start isEmpty. Operand 130 states and 551 transitions. [2019-01-07 18:33:46,363 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:33:46,363 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:33:46,363 INFO L74 IsIncluded]: Start isIncluded. First operand 41 states. Second operand 130 states. [2019-01-07 18:33:46,363 INFO L87 Difference]: Start difference. First operand 41 states. Second operand 130 states. [2019-01-07 18:33:46,367 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:33:46,367 INFO L93 Difference]: Finished difference Result 130 states and 551 transitions. [2019-01-07 18:33:46,367 INFO L276 IsEmpty]: Start isEmpty. Operand 130 states and 551 transitions. [2019-01-07 18:33:46,368 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:33:46,368 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:33:46,368 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:33:46,368 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:33:46,368 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 41 states. [2019-01-07 18:33:46,369 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 41 states to 41 states and 140 transitions. [2019-01-07 18:33:46,369 INFO L78 Accepts]: Start accepts. Automaton has 41 states and 140 transitions. Word has length 5 [2019-01-07 18:33:46,369 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:33:46,369 INFO L480 AbstractCegarLoop]: Abstraction has 41 states and 140 transitions. [2019-01-07 18:33:46,370 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 18:33:46,370 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 140 transitions. [2019-01-07 18:33:46,370 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 18:33:46,370 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:33:46,370 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 18:33:46,371 INFO L423 AbstractCegarLoop]: === Iteration 29 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:33:46,371 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:33:46,371 INFO L82 PathProgramCache]: Analyzing trace with hash 29239194, now seen corresponding path program 1 times [2019-01-07 18:33:46,371 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:33:46,372 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:33:46,372 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-07 18:33:46,372 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:33:46,372 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:33:46,375 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:33:46,524 INFO L273 TraceCheckUtils]: 0: Hoare triple {9211#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]; {9213#(and (= (select |#memory_int| ULTIMATE.start_main_p5) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 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-07 18:33:46,526 INFO L273 TraceCheckUtils]: 1: Hoare triple {9213#(and (= (select |#memory_int| ULTIMATE.start_main_p5) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 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]; {9214#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-07 18:33:46,526 INFO L273 TraceCheckUtils]: 2: Hoare triple {9214#(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]; {9215#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:33:46,527 INFO L273 TraceCheckUtils]: 3: Hoare triple {9215#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {9215#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:33:46,527 INFO L273 TraceCheckUtils]: 4: Hoare triple {9215#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {9212#false} is VALID [2019-01-07 18:33:46,527 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:33:46,528 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:33:46,528 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:33:46,528 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 18:33:46,528 INFO L207 CegarAbsIntRunner]: [0], [14], [20], [24], [25] [2019-01-07 18:33:46,529 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:33:46,530 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:33:46,540 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:33:46,540 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-07 18:33:46,541 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:33:46,541 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:33:46,541 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:33:46,541 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 27 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 27 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:33:46,552 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:33:46,552 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:33:46,556 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:33:46,560 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:33:46,561 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:33:46,580 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-07 18:33:46,588 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-07 18:33:46,596 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:46,597 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:46,598 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-07 18:33:46,722 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:46,742 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:46,756 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:46,757 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 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-07 18:33:46,883 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:46,886 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:46,887 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:46,889 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:46,890 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-07 18:33:46,895 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:46,925 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:46,943 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:46,954 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:46,968 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:46,991 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-07 18:33:47,021 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:47,023 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:47,024 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-07 18:33:47,083 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:47,084 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:47,087 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:47,088 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:47,089 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-07 18:33:47,158 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:47,160 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:47,161 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:47,162 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:47,163 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:47,165 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:47,166 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-07 18:33:47,169 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:47,187 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:47,203 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:47,222 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:47,260 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-07 18:33:47,261 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 4 variables, input treesize:61, output treesize:62 [2019-01-07 18:33:47,270 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:33:47,271 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_150|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, |v_#valid_32|]. (let ((.cse1 (store (store |v_#valid_32| ULTIMATE.start_main_p1 1) ULTIMATE.start_main_p2 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p3 1))) (and (= (select (store .cse0 ULTIMATE.start_main_p4 1) ULTIMATE.start_main_p5) 0) (= (store (store (store (store (store |v_#memory_int_150| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (= 0 (select .cse0 ULTIMATE.start_main_p4)) (= 0 (select .cse1 ULTIMATE.start_main_p3))))) [2019-01-07 18:33:47,271 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, 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-07 18:33:47,369 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:47,370 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-07 18:33:47,375 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:47,409 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:33:47,410 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:72, output treesize:46 [2019-01-07 18:33:47,417 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:33:47,418 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_151|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_151| ULTIMATE.start_main_p5))) (and (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (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)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select |v_#memory_int_151| ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_151| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_151| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (store |v_#memory_int_151| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_151| ULTIMATE.start_main_p1)) (= .cse0 0))) [2019-01-07 18:33:47,418 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [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-07 18:33:47,565 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:47,566 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:47,567 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:47,569 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:47,571 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:47,572 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:47,573 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:33:47,574 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 76 [2019-01-07 18:33:47,583 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:47,623 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-07 18:33:47,624 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:56, output treesize:38 [2019-01-07 18:33:50,257 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:33:50,257 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_152|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_152| ULTIMATE.start_main_p3))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (store |v_#memory_int_152| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_152| ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_152| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_152| ULTIMATE.start_main_p5) 1) (= (select |v_#memory_int_152| ULTIMATE.start_main_p2) 0) (= 0 .cse0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-07 18:33:50,257 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 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) 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)) [2019-01-07 18:33:50,355 INFO L273 TraceCheckUtils]: 0: Hoare triple {9211#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]; {9219#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (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_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_p4) 0) (not (= ULTIMATE.start_main_p1 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_p2 ULTIMATE.start_main_p5)) (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-07 18:33:50,358 INFO L273 TraceCheckUtils]: 1: Hoare triple {9219#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (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_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_p4) 0) (not (= ULTIMATE.start_main_p1 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_p2 ULTIMATE.start_main_p5)) (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))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {9223#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (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) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (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_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-07 18:33:50,360 INFO L273 TraceCheckUtils]: 2: Hoare triple {9223#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (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) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (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_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {9227#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (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)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-07 18:33:50,362 INFO L273 TraceCheckUtils]: 3: Hoare triple {9227#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (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)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (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)))))} assume #memory_int[main_p1] >= 0; {9227#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (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)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-07 18:33:50,363 INFO L273 TraceCheckUtils]: 4: Hoare triple {9227#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (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)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (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)))))} assume !(#memory_int[main_p2] <= 0); {9212#false} is VALID [2019-01-07 18:33:50,363 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:33:50,364 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:33:50,423 INFO L273 TraceCheckUtils]: 4: Hoare triple {9234#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {9212#false} is VALID [2019-01-07 18:33:50,424 INFO L273 TraceCheckUtils]: 3: Hoare triple {9234#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {9234#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:33:50,425 INFO L273 TraceCheckUtils]: 2: Hoare triple {9241#(<= (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]; {9234#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:33:50,427 INFO L273 TraceCheckUtils]: 1: Hoare triple {9245#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {9241#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:33:50,429 INFO L273 TraceCheckUtils]: 0: Hoare triple {9211#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]; {9245#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:33:50,430 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:33:50,448 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:33:50,449 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 18:33:50,449 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:33:50,449 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 18:33:50,449 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:33:50,449 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:33:50,464 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:33:50,465 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:33:50,465 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:33:50,465 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=43, Invalid=67, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:33:50,465 INFO L87 Difference]: Start difference. First operand 41 states and 140 transitions. Second operand 8 states. [2019-01-07 18:33:53,807 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:33:53,807 INFO L93 Difference]: Finished difference Result 71 states and 187 transitions. [2019-01-07 18:33:53,807 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 18:33:53,807 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 18:33:53,807 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:33:53,807 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:33:53,808 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 65 transitions. [2019-01-07 18:33:53,808 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:33:53,808 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 65 transitions. [2019-01-07 18:33:53,808 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 65 transitions. [2019-01-07 18:33:53,897 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 65 edges. 65 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:33:53,898 INFO L225 Difference]: With dead ends: 71 [2019-01-07 18:33:53,898 INFO L226 Difference]: Without dead ends: 68 [2019-01-07 18:33:53,898 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 12 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=50, Invalid=82, Unknown=0, NotChecked=0, Total=132 [2019-01-07 18:33:53,899 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 68 states. [2019-01-07 18:33:55,171 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 68 to 46. [2019-01-07 18:33:55,172 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:33:55,172 INFO L82 GeneralOperation]: Start isEquivalent. First operand 68 states. Second operand 46 states. [2019-01-07 18:33:55,172 INFO L74 IsIncluded]: Start isIncluded. First operand 68 states. Second operand 46 states. [2019-01-07 18:33:55,172 INFO L87 Difference]: Start difference. First operand 68 states. Second operand 46 states. [2019-01-07 18:33:55,174 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:33:55,174 INFO L93 Difference]: Finished difference Result 68 states and 183 transitions. [2019-01-07 18:33:55,174 INFO L276 IsEmpty]: Start isEmpty. Operand 68 states and 183 transitions. [2019-01-07 18:33:55,175 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:33:55,175 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:33:55,175 INFO L74 IsIncluded]: Start isIncluded. First operand 46 states. Second operand 68 states. [2019-01-07 18:33:55,175 INFO L87 Difference]: Start difference. First operand 46 states. Second operand 68 states. [2019-01-07 18:33:55,176 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:33:55,176 INFO L93 Difference]: Finished difference Result 68 states and 183 transitions. [2019-01-07 18:33:55,176 INFO L276 IsEmpty]: Start isEmpty. Operand 68 states and 183 transitions. [2019-01-07 18:33:55,176 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:33:55,177 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:33:55,177 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:33:55,177 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:33:55,177 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 46 states. [2019-01-07 18:33:55,178 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 46 states to 46 states and 160 transitions. [2019-01-07 18:33:55,178 INFO L78 Accepts]: Start accepts. Automaton has 46 states and 160 transitions. Word has length 5 [2019-01-07 18:33:55,178 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:33:55,178 INFO L480 AbstractCegarLoop]: Abstraction has 46 states and 160 transitions. [2019-01-07 18:33:55,178 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:33:55,178 INFO L276 IsEmpty]: Start isEmpty. Operand 46 states and 160 transitions. [2019-01-07 18:33:55,178 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 18:33:55,179 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:33:55,179 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 18:33:55,179 INFO L423 AbstractCegarLoop]: === Iteration 30 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:33:55,179 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:33:55,179 INFO L82 PathProgramCache]: Analyzing trace with hash 28818276, now seen corresponding path program 1 times [2019-01-07 18:33:55,179 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:33:55,180 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:33:55,180 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:33:55,180 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:33:55,180 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:33:55,184 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:33:55,253 INFO L273 TraceCheckUtils]: 0: Hoare triple {9550#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]; {9552#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-07 18:33:55,254 INFO L273 TraceCheckUtils]: 1: Hoare triple {9552#(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]; {9552#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-07 18:33:55,255 INFO L273 TraceCheckUtils]: 2: Hoare triple {9552#(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_p2 := #memory_int[main_p2] - 1]; {9553#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-07 18:33:55,256 INFO L273 TraceCheckUtils]: 3: Hoare triple {9553#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {9554#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:33:55,256 INFO L273 TraceCheckUtils]: 4: Hoare triple {9554#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {9551#false} is VALID [2019-01-07 18:33:55,257 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 18:33:55,257 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:33:55,257 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:33:55,258 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 18:33:55,258 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [24], [25] [2019-01-07 18:33:55,260 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:33:55,261 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:33:55,272 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:33:55,273 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-07 18:33:55,273 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:33:55,273 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:33:55,273 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:33:55,273 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 28 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 28 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:33:55,284 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:33:55,284 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:33:55,288 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:33:55,292 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:33:55,292 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:33:55,330 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:55,331 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-07 18:33:55,373 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:55,375 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:55,376 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-07 18:33:55,424 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:55,425 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:55,427 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:55,428 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:55,429 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-07 18:33:55,431 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:55,442 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:55,453 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:55,472 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-07 18:33:55,482 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-07 18:33:55,493 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-07 18:33:55,507 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-07 18:33:55,526 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-07 18:33:55,529 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:55,549 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:55,565 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:55,577 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:55,588 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:33:55,618 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-07 18:33:55,619 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 5 variables, input treesize:52, output treesize:50 [2019-01-07 18:33:55,627 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:33:55,628 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_155|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, |v_#valid_33|]. (let ((.cse1 (store |v_#valid_33| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= (store (store (store (store (store |v_#memory_int_155| 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_p3)) (= (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4) 0) (= 0 (select .cse1 ULTIMATE.start_main_p2))))) [2019-01-07 18:33:55,628 WARN L386 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-07 18:33:55,707 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:55,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 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:33:55,712 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:55,738 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:33:55,739 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:55, output treesize:33 [2019-01-07 18:33:57,745 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:33:57,745 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_156|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_156| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_156| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (store |v_#memory_int_156| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_156| ULTIMATE.start_main_p4)) (= .cse0 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_156| ULTIMATE.start_main_p3)))) [2019-01-07 18:33:57,745 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (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)) [2019-01-07 18:33:57,799 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:57,801 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:57,802 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:57,803 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:57,804 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:57,806 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:33:57,807 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 65 [2019-01-07 18:33:57,811 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:33:57,836 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:33:57,836 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:43, output treesize:25 [2019-01-07 18:33:57,843 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:33:57,843 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_157|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_157| ULTIMATE.start_main_p2))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_157| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= |#memory_int| (store |v_#memory_int_157| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 1 (select |v_#memory_int_157| ULTIMATE.start_main_p1)) (= (select |v_#memory_int_157| ULTIMATE.start_main_p4) 0) (= .cse0 0))) [2019-01-07 18:33:57,843 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 18:33:57,881 INFO L273 TraceCheckUtils]: 0: Hoare triple {9550#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]; {9558#(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-07 18:33:57,883 INFO L273 TraceCheckUtils]: 1: Hoare triple {9558#(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_p1 := #memory_int[main_p1] + 1]; {9562#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_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-07 18:33:57,884 INFO L273 TraceCheckUtils]: 2: Hoare triple {9562#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_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))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {9566#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (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-07 18:33:57,885 INFO L273 TraceCheckUtils]: 3: Hoare triple {9566#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (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; {9566#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (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-07 18:33:57,886 INFO L273 TraceCheckUtils]: 4: Hoare triple {9566#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (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_p2] <= 0); {9551#false} is VALID [2019-01-07 18:33:57,886 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:33:57,887 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:33:57,914 INFO L273 TraceCheckUtils]: 4: Hoare triple {9554#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {9551#false} is VALID [2019-01-07 18:33:57,914 INFO L273 TraceCheckUtils]: 3: Hoare triple {9554#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {9554#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:33:57,915 INFO L273 TraceCheckUtils]: 2: Hoare triple {9579#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {9554#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:33:57,916 INFO L273 TraceCheckUtils]: 1: Hoare triple {9583#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {9579#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} is VALID [2019-01-07 18:33:57,918 INFO L273 TraceCheckUtils]: 0: Hoare triple {9550#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]; {9583#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-01-07 18:33:57,919 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:33:57,939 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:33:57,939 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-01-07 18:33:57,939 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:33:57,939 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 18:33:57,939 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:33:57,940 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:33:57,954 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:33:57,954 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:33:57,955 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:33:57,955 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=38, Invalid=52, Unknown=0, NotChecked=0, Total=90 [2019-01-07 18:33:57,955 INFO L87 Difference]: Start difference. First operand 46 states and 160 transitions. Second operand 8 states. [2019-01-07 18:33:59,743 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:33:59,744 INFO L93 Difference]: Finished difference Result 73 states and 194 transitions. [2019-01-07 18:33:59,744 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-07 18:33:59,744 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 18:33:59,744 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:33:59,744 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:33:59,745 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 66 transitions. [2019-01-07 18:33:59,745 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:33:59,745 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 66 transitions. [2019-01-07 18:33:59,745 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 66 transitions. [2019-01-07 18:33:59,831 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 66 edges. 66 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:33:59,833 INFO L225 Difference]: With dead ends: 73 [2019-01-07 18:33:59,833 INFO L226 Difference]: Without dead ends: 72 [2019-01-07 18:33:59,834 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 24 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-01-07 18:33:59,834 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 72 states. [2019-01-07 18:34:01,401 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 72 to 47. [2019-01-07 18:34:01,402 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:34:01,402 INFO L82 GeneralOperation]: Start isEquivalent. First operand 72 states. Second operand 47 states. [2019-01-07 18:34:01,402 INFO L74 IsIncluded]: Start isIncluded. First operand 72 states. Second operand 47 states. [2019-01-07 18:34:01,402 INFO L87 Difference]: Start difference. First operand 72 states. Second operand 47 states. [2019-01-07 18:34:01,403 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:34:01,403 INFO L93 Difference]: Finished difference Result 72 states and 192 transitions. [2019-01-07 18:34:01,403 INFO L276 IsEmpty]: Start isEmpty. Operand 72 states and 192 transitions. [2019-01-07 18:34:01,404 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:34:01,404 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:34:01,404 INFO L74 IsIncluded]: Start isIncluded. First operand 47 states. Second operand 72 states. [2019-01-07 18:34:01,404 INFO L87 Difference]: Start difference. First operand 47 states. Second operand 72 states. [2019-01-07 18:34:01,406 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:34:01,406 INFO L93 Difference]: Finished difference Result 72 states and 192 transitions. [2019-01-07 18:34:01,406 INFO L276 IsEmpty]: Start isEmpty. Operand 72 states and 192 transitions. [2019-01-07 18:34:01,407 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:34:01,407 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:34:01,407 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:34:01,407 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:34:01,407 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 47 states. [2019-01-07 18:34:01,408 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 47 states to 47 states and 166 transitions. [2019-01-07 18:34:01,408 INFO L78 Accepts]: Start accepts. Automaton has 47 states and 166 transitions. Word has length 5 [2019-01-07 18:34:01,408 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:34:01,409 INFO L480 AbstractCegarLoop]: Abstraction has 47 states and 166 transitions. [2019-01-07 18:34:01,409 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:34:01,409 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 166 transitions. [2019-01-07 18:34:01,409 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 18:34:01,409 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:34:01,409 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 18:34:01,409 INFO L423 AbstractCegarLoop]: === Iteration 31 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:34:01,410 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:34:01,410 INFO L82 PathProgramCache]: Analyzing trace with hash 28822120, now seen corresponding path program 1 times [2019-01-07 18:34:01,410 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:34:01,410 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:34:01,411 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:34:01,411 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:34:01,411 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:34:01,414 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:34:01,554 INFO L273 TraceCheckUtils]: 0: Hoare triple {9903#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]; {9905#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-07 18:34:01,555 INFO L273 TraceCheckUtils]: 1: Hoare triple {9905#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {9906#(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_p2)))} is VALID [2019-01-07 18:34:01,556 INFO L273 TraceCheckUtils]: 2: Hoare triple {9906#(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_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {9907#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-07 18:34:01,557 INFO L273 TraceCheckUtils]: 3: Hoare triple {9907#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {9908#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:34:01,557 INFO L273 TraceCheckUtils]: 4: Hoare triple {9908#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {9904#false} is VALID [2019-01-07 18:34:01,558 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:34:01,558 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:34:01,558 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:34:01,558 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 18:34:01,559 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [24], [25] [2019-01-07 18:34:01,560 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:34:01,560 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:34:01,571 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:34:01,571 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-07 18:34:01,571 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:34:01,571 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:34:01,572 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:34:01,572 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 29 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 29 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:34:01,581 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:34:01,581 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:34:01,585 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:34:01,589 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:34:01,589 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:34:01,641 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-07 18:34:01,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, 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-07 18:34:01,662 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:01,664 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:01,665 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-07 18:34:01,681 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:01,682 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:01,683 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:01,684 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-07 18:34:01,711 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-07 18:34:01,718 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-07 18:34:01,740 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:01,758 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:01,771 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:01,784 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:01,814 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:01,815 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-07 18:34:01,876 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:01,877 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:01,878 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 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-07 18:34:01,948 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:01,949 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:01,951 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:01,952 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:01,952 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-07 18:34:01,957 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-07 18:34:01,969 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:01,980 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:02,011 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-07 18:34:02,012 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:52, output treesize:50 [2019-01-07 18:34:02,021 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:34:02,021 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_160|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, |v_#valid_34|]. (let ((.cse1 (store |v_#valid_34| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= (store (store (store (store (store |v_#memory_int_160| 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) (= 0 (select .cse1 ULTIMATE.start_main_p2)) (= 0 (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4))))) [2019-01-07 18:34:02,022 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [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-07 18:34:02,135 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:02,136 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:34:02,144 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:34:02,168 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:34:02,169 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:55, output treesize:33 [2019-01-07 18:34:02,717 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:34:02,717 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_161|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_161| ULTIMATE.start_main_p1))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_161| ULTIMATE.start_main_p4) 0) (= 0 (select |v_#memory_int_161| 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)) (= (store |v_#memory_int_161| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_161| ULTIMATE.start_main_p3) 0))) [2019-01-07 18:34:02,717 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (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)) [2019-01-07 18:34:02,794 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:02,795 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:02,796 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:02,797 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:02,798 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:02,799 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:34:02,799 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 59 [2019-01-07 18:34:02,806 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:34:02,829 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:34:02,829 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:43, output treesize:29 [2019-01-07 18:34:02,838 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:34:02,839 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_162|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_162| ULTIMATE.start_main_p3))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 1 (select |v_#memory_int_162| ULTIMATE.start_main_p1)) (= 0 .cse0) (= 0 (select |v_#memory_int_162| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (store |v_#memory_int_162| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_162| ULTIMATE.start_main_p4) 0))) [2019-01-07 18:34:02,839 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (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_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 18:34:02,894 INFO L273 TraceCheckUtils]: 0: Hoare triple {9903#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]; {9912#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (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)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 18:34:02,896 INFO L273 TraceCheckUtils]: 1: Hoare triple {9912#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (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)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {9916#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 18:34:02,898 INFO L273 TraceCheckUtils]: 2: Hoare triple {9916#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 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]; {9920#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))))} is VALID [2019-01-07 18:34:02,899 INFO L273 TraceCheckUtils]: 3: Hoare triple {9920#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))))} assume #memory_int[main_p1] >= 0; {9920#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))))} is VALID [2019-01-07 18:34:02,900 INFO L273 TraceCheckUtils]: 4: Hoare triple {9920#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))))} assume !(#memory_int[main_p2] <= 0); {9904#false} is VALID [2019-01-07 18:34:02,900 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:34:02,901 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:34:02,960 INFO L273 TraceCheckUtils]: 4: Hoare triple {9927#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {9904#false} is VALID [2019-01-07 18:34:02,961 INFO L273 TraceCheckUtils]: 3: Hoare triple {9927#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {9927#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:34:02,962 INFO L273 TraceCheckUtils]: 2: Hoare triple {9934#(<= (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]; {9927#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:34:02,964 INFO L273 TraceCheckUtils]: 1: Hoare triple {9938#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {9934#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:34:02,965 INFO L273 TraceCheckUtils]: 0: Hoare triple {9903#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]; {9938#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:34:02,966 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:34:02,986 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:34:02,986 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 3, 3] total 10 [2019-01-07 18:34:02,986 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:34:02,986 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 5 [2019-01-07 18:34:02,986 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:34:02,987 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states. [2019-01-07 18:34:03,002 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:34:03,002 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2019-01-07 18:34:03,002 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2019-01-07 18:34:03,002 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=48, Invalid=84, Unknown=0, NotChecked=0, Total=132 [2019-01-07 18:34:03,003 INFO L87 Difference]: Start difference. First operand 47 states and 166 transitions. Second operand 9 states. [2019-01-07 18:34:05,764 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:34:05,764 INFO L93 Difference]: Finished difference Result 66 states and 193 transitions. [2019-01-07 18:34:05,764 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 18:34:05,764 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 5 [2019-01-07 18:34:05,764 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:34:05,764 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-01-07 18:34:05,765 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 53 transitions. [2019-01-07 18:34:05,765 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-01-07 18:34:05,765 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 53 transitions. [2019-01-07 18:34:05,765 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 53 transitions. [2019-01-07 18:34:05,837 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 53 edges. 53 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:34:05,839 INFO L225 Difference]: With dead ends: 66 [2019-01-07 18:34:05,839 INFO L226 Difference]: Without dead ends: 65 [2019-01-07 18:34:05,840 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 12 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 34 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=68, Invalid=114, Unknown=0, NotChecked=0, Total=182 [2019-01-07 18:34:05,840 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 65 states. [2019-01-07 18:34:07,155 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 65 to 48. [2019-01-07 18:34:07,155 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:34:07,155 INFO L82 GeneralOperation]: Start isEquivalent. First operand 65 states. Second operand 48 states. [2019-01-07 18:34:07,155 INFO L74 IsIncluded]: Start isIncluded. First operand 65 states. Second operand 48 states. [2019-01-07 18:34:07,155 INFO L87 Difference]: Start difference. First operand 65 states. Second operand 48 states. [2019-01-07 18:34:07,156 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:34:07,157 INFO L93 Difference]: Finished difference Result 65 states and 191 transitions. [2019-01-07 18:34:07,157 INFO L276 IsEmpty]: Start isEmpty. Operand 65 states and 191 transitions. [2019-01-07 18:34:07,157 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:34:07,157 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:34:07,157 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand 65 states. [2019-01-07 18:34:07,157 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 65 states. [2019-01-07 18:34:07,159 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:34:07,159 INFO L93 Difference]: Finished difference Result 65 states and 191 transitions. [2019-01-07 18:34:07,159 INFO L276 IsEmpty]: Start isEmpty. Operand 65 states and 191 transitions. [2019-01-07 18:34:07,159 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:34:07,159 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:34:07,160 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:34:07,160 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:34:07,160 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 48 states. [2019-01-07 18:34:07,161 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 48 states to 48 states and 172 transitions. [2019-01-07 18:34:07,161 INFO L78 Accepts]: Start accepts. Automaton has 48 states and 172 transitions. Word has length 5 [2019-01-07 18:34:07,161 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:34:07,161 INFO L480 AbstractCegarLoop]: Abstraction has 48 states and 172 transitions. [2019-01-07 18:34:07,161 INFO L481 AbstractCegarLoop]: Interpolant automaton has 9 states. [2019-01-07 18:34:07,161 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 172 transitions. [2019-01-07 18:34:07,161 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 18:34:07,161 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:34:07,161 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 18:34:07,162 INFO L423 AbstractCegarLoop]: === Iteration 32 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:34:07,162 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:34:07,162 INFO L82 PathProgramCache]: Analyzing trace with hash 28950958, now seen corresponding path program 1 times [2019-01-07 18:34:07,162 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:34:07,163 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:34:07,163 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:34:07,163 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:34:07,163 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:34:07,166 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:34:07,222 INFO L273 TraceCheckUtils]: 0: Hoare triple {10240#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]; {10242#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-07 18:34:07,223 INFO L273 TraceCheckUtils]: 1: Hoare triple {10242#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {10242#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-07 18:34:07,224 INFO L273 TraceCheckUtils]: 2: Hoare triple {10242#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} assume #memory_int[main_p1] >= 0; {10242#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-07 18:34:07,225 INFO L273 TraceCheckUtils]: 3: Hoare triple {10242#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} assume #memory_int[main_p2] <= 0; {10243#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-07 18:34:07,225 INFO L273 TraceCheckUtils]: 4: Hoare triple {10243#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {10241#false} is VALID [2019-01-07 18:34:07,226 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 18:34:07,226 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-01-07 18:34:07,226 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2019-01-07 18:34:07,226 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-07 18:34:07,227 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-01-07 18:34:07,227 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:34:07,227 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-07 18:34:07,232 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 5 edges. 5 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:34:07,232 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-07 18:34:07,232 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-07 18:34:07,233 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2019-01-07 18:34:07,233 INFO L87 Difference]: Start difference. First operand 48 states and 172 transitions. Second operand 4 states. [2019-01-07 18:34:09,947 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:34:09,948 INFO L93 Difference]: Finished difference Result 54 states and 182 transitions. [2019-01-07 18:34:09,948 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-07 18:34:09,948 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-01-07 18:34:09,948 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:34:09,948 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-07 18:34:09,949 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 24 transitions. [2019-01-07 18:34:09,949 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-07 18:34:09,949 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 24 transitions. [2019-01-07 18:34:09,950 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 24 transitions. [2019-01-07 18:34:09,972 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 24 edges. 24 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:34:09,973 INFO L225 Difference]: With dead ends: 54 [2019-01-07 18:34:09,973 INFO L226 Difference]: Without dead ends: 51 [2019-01-07 18:34:09,973 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-07 18:34:09,974 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 51 states. [2019-01-07 18:34:12,412 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 51 to 47. [2019-01-07 18:34:12,412 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:34:12,412 INFO L82 GeneralOperation]: Start isEquivalent. First operand 51 states. Second operand 47 states. [2019-01-07 18:34:12,412 INFO L74 IsIncluded]: Start isIncluded. First operand 51 states. Second operand 47 states. [2019-01-07 18:34:12,412 INFO L87 Difference]: Start difference. First operand 51 states. Second operand 47 states. [2019-01-07 18:34:12,413 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:34:12,414 INFO L93 Difference]: Finished difference Result 51 states and 178 transitions. [2019-01-07 18:34:12,414 INFO L276 IsEmpty]: Start isEmpty. Operand 51 states and 178 transitions. [2019-01-07 18:34:12,414 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:34:12,414 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:34:12,414 INFO L74 IsIncluded]: Start isIncluded. First operand 47 states. Second operand 51 states. [2019-01-07 18:34:12,414 INFO L87 Difference]: Start difference. First operand 47 states. Second operand 51 states. [2019-01-07 18:34:12,416 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:34:12,416 INFO L93 Difference]: Finished difference Result 51 states and 178 transitions. [2019-01-07 18:34:12,416 INFO L276 IsEmpty]: Start isEmpty. Operand 51 states and 178 transitions. [2019-01-07 18:34:12,416 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:34:12,416 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:34:12,416 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:34:12,417 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:34:12,417 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 47 states. [2019-01-07 18:34:12,418 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 47 states to 47 states and 175 transitions. [2019-01-07 18:34:12,418 INFO L78 Accepts]: Start accepts. Automaton has 47 states and 175 transitions. Word has length 5 [2019-01-07 18:34:12,418 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:34:12,418 INFO L480 AbstractCegarLoop]: Abstraction has 47 states and 175 transitions. [2019-01-07 18:34:12,418 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-07 18:34:12,418 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 175 transitions. [2019-01-07 18:34:12,418 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 18:34:12,418 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:34:12,418 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 18:34:12,419 INFO L423 AbstractCegarLoop]: === Iteration 33 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:34:12,419 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:34:12,419 INFO L82 PathProgramCache]: Analyzing trace with hash 28941284, now seen corresponding path program 1 times [2019-01-07 18:34:12,419 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:34:12,419 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:34:12,420 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:34:12,420 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:34:12,420 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:34:12,452 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:34:12,569 INFO L273 TraceCheckUtils]: 0: Hoare triple {10501#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]; {10503#(and (<= (select |#memory_int| ULTIMATE.start_main_p2) 1) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 18:34:12,578 INFO L273 TraceCheckUtils]: 1: Hoare triple {10503#(and (<= (select |#memory_int| ULTIMATE.start_main_p2) 1) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {10504#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0))} is VALID [2019-01-07 18:34:12,588 INFO L273 TraceCheckUtils]: 2: Hoare triple {10504#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (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]; {10505#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:34:12,588 INFO L273 TraceCheckUtils]: 3: Hoare triple {10505#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {10505#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:34:12,589 INFO L273 TraceCheckUtils]: 4: Hoare triple {10505#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {10502#false} is VALID [2019-01-07 18:34:12,589 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:34:12,589 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:34:12,589 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:34:12,589 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 18:34:12,589 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [24], [25] [2019-01-07 18:34:12,590 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:34:12,590 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:34:12,597 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:34:12,597 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-07 18:34:12,598 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:34:12,598 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:34:12,598 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:34:12,598 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 30 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 30 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:34:12,607 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:34:12,608 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:34:12,612 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:34:12,616 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:34:12,617 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:34:12,628 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-07 18:34:12,648 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:12,651 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:12,652 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-07 18:34:12,693 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:12,694 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:12,696 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:12,698 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:12,698 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-07 18:34:12,700 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-07 18:34:12,710 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:12,720 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:12,737 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 21 [2019-01-07 18:34:12,744 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 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 21 treesize of output 23 [2019-01-07 18:34:12,754 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 5 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-07 18:34:12,765 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-07 18:34:12,780 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-07 18:34:12,783 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-07 18:34:12,799 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:12,813 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:12,824 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:12,834 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:12,858 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-07 18:34:12,859 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 5 variables, input treesize:44, output treesize:46 [2019-01-07 18:34:12,867 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:34:12,868 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_165|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, |v_#valid_35|]. (let ((.cse0 (store (store |v_#valid_35| ULTIMATE.start_main_p1 1) ULTIMATE.start_main_p2 1))) (and (= (store (store (store (store (store |v_#memory_int_165| 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-07 18:34:12,868 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, 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-07 18:34:12,954 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:12,964 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 2 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:34:12,967 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 2 xjuncts. [2019-01-07 18:34:13,030 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-07 18:34:13,031 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:51, output treesize:62 [2019-01-07 18:34:13,039 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:34:13,039 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_166|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_166| ULTIMATE.start_main_p2))) (and (= 0 (select |v_#memory_int_166| ULTIMATE.start_main_p4)) (= (store |v_#memory_int_166| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_166| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= .cse0 0) (= (select |v_#memory_int_166| 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-07 18:34:13,040 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, v_prenex_71]. (let ((.cse0 (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2))) (.cse1 (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (or (and (not (= ULTIMATE.start_main_p3 v_prenex_71)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) .cse0 (not (= ULTIMATE.start_main_p2 v_prenex_71)) .cse1 (= (select |#memory_int| v_prenex_71) 0)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) .cse0 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) .cse1 (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))))) [2019-01-07 18:34:13,093 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:13,094 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:13,095 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:13,096 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:13,097 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 50 [2019-01-07 18:34:13,099 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:34:13,118 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:34:13,118 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:36, output treesize:18 [2019-01-07 18:34:13,124 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:34:13,124 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_167|, ULTIMATE.start_main_p3, v_prenex_71]. (let ((.cse0 (select |v_#memory_int_167| ULTIMATE.start_main_p3))) (and (= .cse0 0) (not (= ULTIMATE.start_main_p2 v_prenex_71)) (= 0 (+ (select |v_#memory_int_167| ULTIMATE.start_main_p2) 1)) (= (select |v_#memory_int_167| v_prenex_71) 0) (= (store |v_#memory_int_167| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p3 v_prenex_71)))) [2019-01-07 18:34:13,124 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_71, ULTIMATE.start_main_p3]. (and (= 0 (select |#memory_int| v_prenex_71)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-07 18:34:13,147 INFO L273 TraceCheckUtils]: 0: Hoare triple {10501#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]; {10509#(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) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (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_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-07 18:34:13,149 INFO L273 TraceCheckUtils]: 1: Hoare triple {10509#(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) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (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_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {10513#(and (exists ((v_prenex_71 Int)) (and (not (= ULTIMATE.start_main_p2 v_prenex_71)) (= (select |#memory_int| v_prenex_71) 0) (not (= ULTIMATE.start_main_p3 v_prenex_71)))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 18:34:13,150 INFO L273 TraceCheckUtils]: 2: Hoare triple {10513#(and (exists ((v_prenex_71 Int)) (and (not (= ULTIMATE.start_main_p2 v_prenex_71)) (= (select |#memory_int| v_prenex_71) 0) (not (= ULTIMATE.start_main_p3 v_prenex_71)))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {10517#(and (exists ((v_prenex_71 Int)) (= 0 (select |#memory_int| v_prenex_71))) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-07 18:34:13,151 INFO L273 TraceCheckUtils]: 3: Hoare triple {10517#(and (exists ((v_prenex_71 Int)) (= 0 (select |#memory_int| v_prenex_71))) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume #memory_int[main_p1] >= 0; {10517#(and (exists ((v_prenex_71 Int)) (= 0 (select |#memory_int| v_prenex_71))) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-07 18:34:13,151 INFO L273 TraceCheckUtils]: 4: Hoare triple {10517#(and (exists ((v_prenex_71 Int)) (= 0 (select |#memory_int| v_prenex_71))) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume !(#memory_int[main_p2] <= 0); {10502#false} is VALID [2019-01-07 18:34:13,152 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:34:13,152 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:34:13,177 INFO L273 TraceCheckUtils]: 4: Hoare triple {10505#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {10502#false} is VALID [2019-01-07 18:34:13,177 INFO L273 TraceCheckUtils]: 3: Hoare triple {10505#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {10505#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:34:13,178 INFO L273 TraceCheckUtils]: 2: Hoare triple {10530#(<= (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]; {10505#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:34:13,179 INFO L273 TraceCheckUtils]: 1: Hoare triple {10534#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {10530#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:34:13,181 INFO L273 TraceCheckUtils]: 0: Hoare triple {10501#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]; {10534#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:34:13,181 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:34:13,201 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:34:13,201 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-01-07 18:34:13,201 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:34:13,202 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 18:34:13,202 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:34:13,202 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:34:13,217 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:34:13,217 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:34:13,217 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:34:13,218 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=38, Invalid=52, Unknown=0, NotChecked=0, Total=90 [2019-01-07 18:34:13,218 INFO L87 Difference]: Start difference. First operand 47 states and 175 transitions. Second operand 8 states. [2019-01-07 18:34:15,639 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:34:15,639 INFO L93 Difference]: Finished difference Result 83 states and 276 transitions. [2019-01-07 18:34:15,640 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-07 18:34:15,640 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 18:34:15,640 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:34:15,640 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:34:15,640 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 58 transitions. [2019-01-07 18:34:15,640 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:34:15,641 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 58 transitions. [2019-01-07 18:34:15,641 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 58 transitions. [2019-01-07 18:34:15,714 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-07 18:34:15,716 INFO L225 Difference]: With dead ends: 83 [2019-01-07 18:34:15,716 INFO L226 Difference]: Without dead ends: 82 [2019-01-07 18:34:15,717 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 12 GetRequests, 3 SyntacticMatches, 0 SemanticMatches, 9 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 24 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=46, Invalid=64, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:34:15,717 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 82 states. [2019-01-07 18:34:18,513 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 82 to 58. [2019-01-07 18:34:18,513 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:34:18,513 INFO L82 GeneralOperation]: Start isEquivalent. First operand 82 states. Second operand 58 states. [2019-01-07 18:34:18,514 INFO L74 IsIncluded]: Start isIncluded. First operand 82 states. Second operand 58 states. [2019-01-07 18:34:18,514 INFO L87 Difference]: Start difference. First operand 82 states. Second operand 58 states. [2019-01-07 18:34:18,516 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:34:18,516 INFO L93 Difference]: Finished difference Result 82 states and 274 transitions. [2019-01-07 18:34:18,516 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 274 transitions. [2019-01-07 18:34:18,516 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:34:18,516 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:34:18,516 INFO L74 IsIncluded]: Start isIncluded. First operand 58 states. Second operand 82 states. [2019-01-07 18:34:18,516 INFO L87 Difference]: Start difference. First operand 58 states. Second operand 82 states. [2019-01-07 18:34:18,518 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:34:18,518 INFO L93 Difference]: Finished difference Result 82 states and 274 transitions. [2019-01-07 18:34:18,519 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 274 transitions. [2019-01-07 18:34:18,519 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:34:18,519 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:34:18,519 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:34:18,519 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:34:18,519 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 58 states. [2019-01-07 18:34:18,521 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 58 states to 58 states and 241 transitions. [2019-01-07 18:34:18,521 INFO L78 Accepts]: Start accepts. Automaton has 58 states and 241 transitions. Word has length 5 [2019-01-07 18:34:18,521 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:34:18,521 INFO L480 AbstractCegarLoop]: Abstraction has 58 states and 241 transitions. [2019-01-07 18:34:18,521 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:34:18,521 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 241 transitions. [2019-01-07 18:34:18,522 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 18:34:18,522 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:34:18,522 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1] [2019-01-07 18:34:18,522 INFO L423 AbstractCegarLoop]: === Iteration 34 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:34:18,522 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:34:18,522 INFO L82 PathProgramCache]: Analyzing trace with hash 904687194, now seen corresponding path program 1 times [2019-01-07 18:34:18,522 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:34:18,523 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:34:18,523 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:34:18,523 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:34:18,524 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:34:18,529 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:34:18,712 INFO L273 TraceCheckUtils]: 0: Hoare triple {10920#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]; {10922#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select (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_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 18:34:18,713 INFO L273 TraceCheckUtils]: 1: Hoare triple {10922#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select (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_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {10922#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select (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_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 18:34:18,715 INFO L273 TraceCheckUtils]: 2: Hoare triple {10922#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select (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_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {10923#(and (= (select |#memory_int| ULTIMATE.start_main_p2) (select |#memory_int| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-07 18:34:18,716 INFO L273 TraceCheckUtils]: 3: Hoare triple {10923#(and (= (select |#memory_int| ULTIMATE.start_main_p2) (select |#memory_int| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {10923#(and (= (select |#memory_int| ULTIMATE.start_main_p2) (select |#memory_int| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-07 18:34:18,717 INFO L273 TraceCheckUtils]: 4: Hoare triple {10923#(and (= (select |#memory_int| ULTIMATE.start_main_p2) (select |#memory_int| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p2] <= 0; {10924#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 18:34:18,717 INFO L273 TraceCheckUtils]: 5: Hoare triple {10924#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {10921#false} is VALID [2019-01-07 18:34:18,718 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 18:34:18,718 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:34:18,718 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:34:18,718 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-07 18:34:18,718 INFO L207 CegarAbsIntRunner]: [0], [18], [24], [26], [27] [2019-01-07 18:34:18,719 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:34:18,720 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:34:18,755 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:34:18,755 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-07 18:34:18,755 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:34:18,755 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:34:18,755 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:34:18,755 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 31 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 31 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:34:18,769 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:34:18,769 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:34:18,774 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:34:18,777 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:34:18,778 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:34:18,790 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-07 18:34:18,816 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:18,819 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:18,819 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-07 18:34:18,860 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:18,861 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:18,865 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:18,866 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:18,867 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-07 18:34:18,869 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-07 18:34:18,881 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:18,893 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:18,913 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 21 [2019-01-07 18:34:18,921 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 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 21 treesize of output 23 [2019-01-07 18:34:18,930 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 5 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-07 18:34:18,943 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-07 18:34:18,970 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-07 18:34:18,973 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-07 18:34:18,990 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:19,003 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:19,014 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:19,025 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:19,048 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-07 18:34:19,048 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 5 variables, input treesize:44, output treesize:46 [2019-01-07 18:34:19,057 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:34:19,057 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_170|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5, |v_#valid_36|]. (let ((.cse0 (store (store |v_#valid_36| ULTIMATE.start_main_p1 1) ULTIMATE.start_main_p2 1))) (and (= |#memory_int| (store (store (store (store (store |v_#memory_int_170| 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)) (= 0 (select .cse0 ULTIMATE.start_main_p3)))) [2019-01-07 18:34:19,058 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (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-07 18:34:19,115 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:19,115 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 28 [2019-01-07 18:34:19,117 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:34:19,128 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:34:19,128 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:38, output treesize:20 [2019-01-07 18:34:19,133 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:34:19,133 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_171|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_171| ULTIMATE.start_main_p4))) (and (= (select |v_#memory_int_171| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (store |v_#memory_int_171| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_171| ULTIMATE.start_main_p3)) (= 0 .cse0))) [2019-01-07 18:34:19,133 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (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-07 18:34:19,167 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:19,168 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:19,169 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:19,170 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:19,171 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:19,172 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 40 [2019-01-07 18:34:19,174 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:34:19,190 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:34:19,191 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:32, output treesize:20 [2019-01-07 18:34:21,225 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:34:21,226 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_172|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_172| ULTIMATE.start_main_p4))) (and (= 0 (+ .cse0 1)) (= 0 (select |v_#memory_int_172| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_172| ULTIMATE.start_main_p2)) (= (store |v_#memory_int_172| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|))) [2019-01-07 18:34:21,226 WARN L386 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_p4) (- 2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-07 18:34:21,271 INFO L273 TraceCheckUtils]: 0: Hoare triple {10920#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]; {10928#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (exists ((ULTIMATE.start_main_p2 Int)) (and (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-07 18:34:21,273 INFO L273 TraceCheckUtils]: 1: Hoare triple {10928#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (exists ((ULTIMATE.start_main_p2 Int)) (and (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]; {10932#(and (exists ((ULTIMATE.start_main_p2 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_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 18:34:21,275 INFO L273 TraceCheckUtils]: 2: Hoare triple {10932#(and (exists ((ULTIMATE.start_main_p2 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_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {10936#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 18:34:21,276 INFO L273 TraceCheckUtils]: 3: Hoare triple {10936#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p1] >= 0; {10936#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 18:34:21,277 INFO L273 TraceCheckUtils]: 4: Hoare triple {10936#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p2] <= 0; {10936#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 18:34:21,277 INFO L273 TraceCheckUtils]: 5: Hoare triple {10936#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume !(#memory_int[main_p3] >= 0); {10921#false} is VALID [2019-01-07 18:34:21,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-07 18:34:21,278 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:34:21,316 INFO L273 TraceCheckUtils]: 5: Hoare triple {10924#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {10921#false} is VALID [2019-01-07 18:34:21,316 INFO L273 TraceCheckUtils]: 4: Hoare triple {10924#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {10924#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 18:34:21,317 INFO L273 TraceCheckUtils]: 3: Hoare triple {10924#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {10924#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 18:34:21,318 INFO L273 TraceCheckUtils]: 2: Hoare triple {10955#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {10924#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 18:34:21,319 INFO L273 TraceCheckUtils]: 1: Hoare triple {10959#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 2))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {10955#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-07 18:34:21,321 INFO L273 TraceCheckUtils]: 0: Hoare triple {10920#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]; {10959#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 2))) ULTIMATE.start_main_p3))} is VALID [2019-01-07 18:34:21,321 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:34:21,342 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:34:21,342 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-01-07 18:34:21,342 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:34:21,343 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-07 18:34:21,343 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:34:21,343 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:34:21,358 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:34:21,358 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:34:21,358 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:34:21,358 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=32, Invalid=58, Unknown=0, NotChecked=0, Total=90 [2019-01-07 18:34:21,359 INFO L87 Difference]: Start difference. First operand 58 states and 241 transitions. Second operand 8 states. [2019-01-07 18:34:25,177 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:34:25,177 INFO L93 Difference]: Finished difference Result 86 states and 325 transitions. [2019-01-07 18:34:25,178 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 18:34:25,178 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-07 18:34:25,178 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:34:25,178 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:34:25,178 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 54 transitions. [2019-01-07 18:34:25,178 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:34:25,179 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 54 transitions. [2019-01-07 18:34:25,179 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 54 transitions. [2019-01-07 18:34:25,249 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 54 edges. 54 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:34:25,251 INFO L225 Difference]: With dead ends: 86 [2019-01-07 18:34:25,251 INFO L226 Difference]: Without dead ends: 85 [2019-01-07 18:34:25,252 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 6 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 11 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=56, Invalid=100, Unknown=0, NotChecked=0, Total=156 [2019-01-07 18:34:25,252 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 85 states. [2019-01-07 18:34:28,336 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 85 to 66. [2019-01-07 18:34:28,337 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:34:28,337 INFO L82 GeneralOperation]: Start isEquivalent. First operand 85 states. Second operand 66 states. [2019-01-07 18:34:28,337 INFO L74 IsIncluded]: Start isIncluded. First operand 85 states. Second operand 66 states. [2019-01-07 18:34:28,337 INFO L87 Difference]: Start difference. First operand 85 states. Second operand 66 states. [2019-01-07 18:34:28,339 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:34:28,339 INFO L93 Difference]: Finished difference Result 85 states and 321 transitions. [2019-01-07 18:34:28,339 INFO L276 IsEmpty]: Start isEmpty. Operand 85 states and 321 transitions. [2019-01-07 18:34:28,340 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:34:28,340 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:34:28,340 INFO L74 IsIncluded]: Start isIncluded. First operand 66 states. Second operand 85 states. [2019-01-07 18:34:28,340 INFO L87 Difference]: Start difference. First operand 66 states. Second operand 85 states. [2019-01-07 18:34:28,343 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:34:28,343 INFO L93 Difference]: Finished difference Result 85 states and 321 transitions. [2019-01-07 18:34:28,343 INFO L276 IsEmpty]: Start isEmpty. Operand 85 states and 321 transitions. [2019-01-07 18:34:28,343 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:34:28,344 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:34:28,344 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:34:28,344 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:34:28,344 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 66 states. [2019-01-07 18:34:28,346 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 66 states to 66 states and 289 transitions. [2019-01-07 18:34:28,346 INFO L78 Accepts]: Start accepts. Automaton has 66 states and 289 transitions. Word has length 6 [2019-01-07 18:34:28,346 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:34:28,346 INFO L480 AbstractCegarLoop]: Abstraction has 66 states and 289 transitions. [2019-01-07 18:34:28,346 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:34:28,346 INFO L276 IsEmpty]: Start isEmpty. Operand 66 states and 289 transitions. [2019-01-07 18:34:28,347 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 18:34:28,347 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:34:28,347 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 18:34:28,347 INFO L423 AbstractCegarLoop]: === Iteration 35 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:34:28,347 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:34:28,348 INFO L82 PathProgramCache]: Analyzing trace with hash 904729414, now seen corresponding path program 1 times [2019-01-07 18:34:28,348 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:34:28,348 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:34:28,348 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:34:28,348 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:34:28,349 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:34:28,352 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:34:28,547 INFO L273 TraceCheckUtils]: 0: Hoare triple {11383#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]; {11385#(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_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 18:34:28,548 INFO L273 TraceCheckUtils]: 1: Hoare triple {11385#(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_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]; {11386#(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-07 18:34:28,549 INFO L273 TraceCheckUtils]: 2: Hoare triple {11386#(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]; {11387#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-07 18:34:28,549 INFO L273 TraceCheckUtils]: 3: Hoare triple {11387#(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]; {11387#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-07 18:34:28,550 INFO L273 TraceCheckUtils]: 4: Hoare triple {11387#(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; {11388#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:34:28,551 INFO L273 TraceCheckUtils]: 5: Hoare triple {11388#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {11384#false} is VALID [2019-01-07 18:34:28,551 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 18:34:28,551 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:34:28,551 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:34:28,552 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-07 18:34:28,552 INFO L207 CegarAbsIntRunner]: [0], [6], [18], [20], [24], [25] [2019-01-07 18:34:28,553 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:34:28,553 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:34:28,566 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:34:28,566 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 60 root evaluator evaluations with a maximum evaluation depth of 2. Performed 60 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-07 18:34:28,566 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:34:28,567 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:34:28,567 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:34:28,567 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 32 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 32 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:34:28,575 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:34:28,575 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:34:28,580 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:34:28,585 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:34:28,586 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:34:28,641 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:28,642 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 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-07 18:34:28,701 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:28,702 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:28,703 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-07 18:34:28,767 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:28,768 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:28,770 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:28,771 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:28,772 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 61 [2019-01-07 18:34:28,850 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:28,852 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:28,853 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:28,854 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:28,855 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:28,856 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:28,857 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-07 18:34:28,861 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:34:28,880 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:28,896 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:28,916 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:28,946 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-07 18:34:28,957 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-07 18:34:28,971 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-07 18:34:28,989 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-07 18:34:29,011 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-07 18:34:29,022 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-07 18:34:29,049 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:29,065 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:29,079 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:29,092 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:29,127 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-07 18:34:29,128 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 3 variables, input treesize:69, output treesize:66 [2019-01-07 18:34:29,136 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:34:29,136 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_175|, ULTIMATE.start_main_p3, |v_#valid_37|]. (let ((.cse1 (store |v_#valid_37| ULTIMATE.start_main_p1 1))) (let ((.cse2 (store .cse1 ULTIMATE.start_main_p2 1))) (let ((.cse0 (store .cse2 ULTIMATE.start_main_p3 1))) (and (= 0 (select (store .cse0 ULTIMATE.start_main_p4 1) ULTIMATE.start_main_p5)) (= (select .cse1 ULTIMATE.start_main_p2) 0) (= (store (store (store (store (store |v_#memory_int_175| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (= (select .cse2 ULTIMATE.start_main_p3) 0) (= (select .cse0 ULTIMATE.start_main_p4) 0))))) [2019-01-07 18:34:29,136 WARN L386 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-07 18:34:29,344 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:29,346 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-07 18:34:29,354 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:34:29,398 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:34:29,398 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:76, output treesize:50 [2019-01-07 18:34:31,408 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:34:31,409 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_176|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_176| ULTIMATE.start_main_p4))) (and (= 0 (select |v_#memory_int_176| ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= |#memory_int| (store |v_#memory_int_176| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= 0 .cse0) (= (select |v_#memory_int_176| ULTIMATE.start_main_p5) 0) (= 0 (select |v_#memory_int_176| ULTIMATE.start_main_p2)) (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)) (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)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_176| ULTIMATE.start_main_p3)))) [2019-01-07 18:34:31,409 WARN L386 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-07 18:34:31,510 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:31,512 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:31,513 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:31,514 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:31,515 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:31,517 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:31,518 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:31,519 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-07 18:34:31,525 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:34:31,562 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:34:31,563 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:62, output treesize:40 [2019-01-07 18:34:31,637 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:34:31,637 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_177|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_177| ULTIMATE.start_main_p5))) (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)) (= 0 (select |v_#memory_int_177| ULTIMATE.start_main_p3)) (= 0 (select |v_#memory_int_177| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_177| ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (+ (select |v_#memory_int_177| ULTIMATE.start_main_p4) 1)) (= |#memory_int| (store |v_#memory_int_177| ULTIMATE.start_main_p5 (+ .cse0 1))) (= 0 .cse0))) [2019-01-07 18:34:31,638 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 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-07 18:34:31,720 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:31,721 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:31,722 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:31,724 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:31,725 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:31,726 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:31,727 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:31,728 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:31,729 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:31,730 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:31,732 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:31,732 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:34:31,733 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 94 [2019-01-07 18:34:31,739 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:34:31,781 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-07 18:34:31,782 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:36 [2019-01-07 18:34:31,807 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:34:31,808 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_178|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_178| ULTIMATE.start_main_p1))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 1 (select |v_#memory_int_178| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_178| ULTIMATE.start_main_p3) 0) (= (+ (select |v_#memory_int_178| ULTIMATE.start_main_p4) 1) 0) (= (store |v_#memory_int_178| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= .cse0 0) (= (select |v_#memory_int_178| ULTIMATE.start_main_p2) 0))) [2019-01-07 18:34:31,808 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (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)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-07 18:34:31,872 INFO L273 TraceCheckUtils]: 0: Hoare triple {11383#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]; {11392#(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-07 18:34:31,874 INFO L273 TraceCheckUtils]: 1: Hoare triple {11392#(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]; {11396#(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-07 18:34:31,876 INFO L273 TraceCheckUtils]: 2: Hoare triple {11396#(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_p5 := #memory_int[main_p5] + 1]; {11400#(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))) (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)) (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-07 18:34:31,879 INFO L273 TraceCheckUtils]: 3: Hoare triple {11400#(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))) (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)) (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]; {11404#(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)))) (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-07 18:34:31,880 INFO L273 TraceCheckUtils]: 4: Hoare triple {11404#(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)))) (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; {11404#(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)))) (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-07 18:34:31,881 INFO L273 TraceCheckUtils]: 5: Hoare triple {11404#(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)))) (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); {11384#false} is VALID [2019-01-07 18:34:31,882 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:34:31,882 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:34:31,970 INFO L273 TraceCheckUtils]: 5: Hoare triple {11411#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {11384#false} is VALID [2019-01-07 18:34:31,970 INFO L273 TraceCheckUtils]: 4: Hoare triple {11411#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {11411#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:34:31,972 INFO L273 TraceCheckUtils]: 3: Hoare triple {11418#(<= (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]; {11411#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:34:31,973 INFO L273 TraceCheckUtils]: 2: Hoare triple {11422#(<= (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]; {11418#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:34:31,975 INFO L273 TraceCheckUtils]: 1: Hoare triple {11426#(<= (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_p1 (+ (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) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {11422#(<= (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-07 18:34:31,978 INFO L273 TraceCheckUtils]: 0: Hoare triple {11383#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]; {11426#(<= (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_p1 (+ (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) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:34:31,978 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:34:31,997 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:34:31,997 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-07 18:34:31,998 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:34:31,998 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-07 18:34:31,998 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:34:31,998 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 18:34:32,019 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:34:32,019 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 18:34:32,019 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 18:34:32,020 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=67, Invalid=115, Unknown=0, NotChecked=0, Total=182 [2019-01-07 18:34:32,020 INFO L87 Difference]: Start difference. First operand 66 states and 289 transitions. Second operand 10 states. [2019-01-07 18:34:37,130 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:34:37,130 INFO L93 Difference]: Finished difference Result 100 states and 357 transitions. [2019-01-07 18:34:37,131 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 18:34:37,131 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-07 18:34:37,131 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:34:37,131 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:34:37,131 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 60 transitions. [2019-01-07 18:34:37,132 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:34:37,132 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 60 transitions. [2019-01-07 18:34:37,132 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 60 transitions. [2019-01-07 18:34:37,264 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-07 18:34:37,267 INFO L225 Difference]: With dead ends: 100 [2019-01-07 18:34:37,267 INFO L226 Difference]: Without dead ends: 99 [2019-01-07 18:34:37,267 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 2 SyntacticMatches, 1 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 63 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=100, Invalid=172, Unknown=0, NotChecked=0, Total=272 [2019-01-07 18:34:37,267 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 99 states. [2019-01-07 18:34:41,379 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 99 to 68. [2019-01-07 18:34:41,379 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:34:41,379 INFO L82 GeneralOperation]: Start isEquivalent. First operand 99 states. Second operand 68 states. [2019-01-07 18:34:41,379 INFO L74 IsIncluded]: Start isIncluded. First operand 99 states. Second operand 68 states. [2019-01-07 18:34:41,379 INFO L87 Difference]: Start difference. First operand 99 states. Second operand 68 states. [2019-01-07 18:34:41,382 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:34:41,382 INFO L93 Difference]: Finished difference Result 99 states and 354 transitions. [2019-01-07 18:34:41,382 INFO L276 IsEmpty]: Start isEmpty. Operand 99 states and 354 transitions. [2019-01-07 18:34:41,383 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:34:41,383 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:34:41,383 INFO L74 IsIncluded]: Start isIncluded. First operand 68 states. Second operand 99 states. [2019-01-07 18:34:41,383 INFO L87 Difference]: Start difference. First operand 68 states. Second operand 99 states. [2019-01-07 18:34:41,385 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:34:41,385 INFO L93 Difference]: Finished difference Result 99 states and 354 transitions. [2019-01-07 18:34:41,385 INFO L276 IsEmpty]: Start isEmpty. Operand 99 states and 354 transitions. [2019-01-07 18:34:41,385 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:34:41,385 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:34:41,385 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:34:41,385 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:34:41,385 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 68 states. [2019-01-07 18:34:41,387 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 68 states to 68 states and 301 transitions. [2019-01-07 18:34:41,387 INFO L78 Accepts]: Start accepts. Automaton has 68 states and 301 transitions. Word has length 6 [2019-01-07 18:34:41,387 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:34:41,387 INFO L480 AbstractCegarLoop]: Abstraction has 68 states and 301 transitions. [2019-01-07 18:34:41,387 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 18:34:41,387 INFO L276 IsEmpty]: Start isEmpty. Operand 68 states and 301 transitions. [2019-01-07 18:34:41,387 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 18:34:41,387 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:34:41,388 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 18:34:41,388 INFO L423 AbstractCegarLoop]: === Iteration 36 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:34:41,388 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:34:41,388 INFO L82 PathProgramCache]: Analyzing trace with hash 904737102, now seen corresponding path program 1 times [2019-01-07 18:34:41,388 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:34:41,389 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:34:41,389 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:34:41,389 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:34:41,389 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:34:41,392 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:34:41,700 WARN L181 SmtUtils]: Spent 134.00 ms on a formula simplification that was a NOOP. DAG size: 19 [2019-01-07 18:34:41,985 INFO L273 TraceCheckUtils]: 0: Hoare triple {11900#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]; {11902#(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)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 18:34:41,986 INFO L273 TraceCheckUtils]: 1: Hoare triple {11902#(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)) (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]; {11903#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 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-07 18:34:41,987 INFO L273 TraceCheckUtils]: 2: Hoare triple {11903#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 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]; {11904#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-07 18:34:41,988 INFO L273 TraceCheckUtils]: 3: Hoare triple {11904#(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]; {11905#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:34:41,989 INFO L273 TraceCheckUtils]: 4: Hoare triple {11905#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {11905#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:34:41,990 INFO L273 TraceCheckUtils]: 5: Hoare triple {11905#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {11901#false} is VALID [2019-01-07 18:34:41,990 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:34:41,990 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:34:41,990 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:34:41,991 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-07 18:34:41,991 INFO L207 CegarAbsIntRunner]: [0], [14], [18], [20], [24], [25] [2019-01-07 18:34:41,992 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:34:41,992 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:34:42,015 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:34:42,016 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 60 root evaluator evaluations with a maximum evaluation depth of 2. Performed 60 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-07 18:34:42,016 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:34:42,016 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:34:42,016 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:34:42,016 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 33 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 33 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:34:42,025 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:34:42,025 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:34:42,029 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:34:42,032 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:34:42,033 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:34:42,119 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 43 treesize of output 39 [2019-01-07 18:34:42,145 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:42,148 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:42,149 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-07 18:34:42,224 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:42,226 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:42,230 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:42,232 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:42,233 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-07 18:34:42,296 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:42,297 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:42,298 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:42,300 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:42,301 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:42,304 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:42,305 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-07 18:34:42,315 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:34:42,332 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:42,350 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:42,372 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:42,398 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-07 18:34:42,409 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 6 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-07 18:34:42,420 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 8 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-07 18:34:42,436 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 9 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-07 18:34:42,466 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-07 18:34:42,469 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-07 18:34:42,493 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:42,507 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:42,519 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:42,530 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:42,561 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-07 18:34:42,561 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 3 variables, input treesize:61, output treesize:62 [2019-01-07 18:34:42,569 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:34:42,570 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_182|, ULTIMATE.start_main_p1, |v_#valid_38|]. (let ((.cse0 (store (store |v_#valid_38| 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) (= 0 (select (store .cse1 ULTIMATE.start_main_p4 1) ULTIMATE.start_main_p5)) (= |#memory_int| (store (store (store (store (store |v_#memory_int_182| 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 .cse1 ULTIMATE.start_main_p4))))) [2019-01-07 18:34:42,570 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [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-07 18:34:42,660 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:42,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 45 [2019-01-07 18:34:42,665 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:34:42,684 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:34:42,685 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:55, output treesize:33 [2019-01-07 18:34:42,696 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:34:42,697 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_183|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_183| ULTIMATE.start_main_p4))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |v_#memory_int_183| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= |#memory_int| (store |v_#memory_int_183| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_183| ULTIMATE.start_main_p2)) (= 0 .cse0) (= 0 (select |v_#memory_int_183| ULTIMATE.start_main_p3)))) [2019-01-07 18:34:42,697 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 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_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-07 18:34:42,754 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:42,756 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:42,757 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:42,758 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:42,759 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:42,760 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:42,761 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-07 18:34:42,764 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:34:42,785 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:34:42,786 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:45, output treesize:27 [2019-01-07 18:34:44,792 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:34:44,792 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_184|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_184| ULTIMATE.start_main_p5))) (and (not (= ULTIMATE.start_main_p3 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_184| ULTIMATE.start_main_p2)) (= .cse0 0) (= 0 (select |v_#memory_int_184| ULTIMATE.start_main_p3)) (= (+ (select |v_#memory_int_184| ULTIMATE.start_main_p4) 1) 0) (= |#memory_int| (store |v_#memory_int_184| ULTIMATE.start_main_p5 (+ .cse0 1))))) [2019-01-07 18:34:44,793 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (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)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-07 18:34:44,841 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:44,842 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:44,843 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:44,844 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:44,846 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:44,847 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:44,848 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:44,849 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:44,850 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:44,851 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:34:44,852 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 77 [2019-01-07 18:34:44,856 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:34:44,880 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:34:44,881 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:37, output treesize:27 [2019-01-07 18:34:44,956 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:34:44,956 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_185|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_185| ULTIMATE.start_main_p3))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (+ (select |v_#memory_int_185| ULTIMATE.start_main_p4) 1) 0) (= (select |v_#memory_int_185| ULTIMATE.start_main_p2) 0) (= .cse0 0) (= (select |v_#memory_int_185| ULTIMATE.start_main_p5) 1) (= (store |v_#memory_int_185| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|))) [2019-01-07 18:34:44,956 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2))) [2019-01-07 18:34:44,999 INFO L273 TraceCheckUtils]: 0: Hoare triple {11900#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]; {11909#(and (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_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_p5 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-07 18:34:45,001 INFO L273 TraceCheckUtils]: 1: Hoare triple {11909#(and (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_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_p5 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]; {11913#(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_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-07 18:34:45,003 INFO L273 TraceCheckUtils]: 2: Hoare triple {11913#(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_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_p5 := #memory_int[main_p5] + 1]; {11917#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (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-07 18:34:45,005 INFO L273 TraceCheckUtils]: 3: Hoare triple {11917#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (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]; {11921#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))) (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-07 18:34:45,006 INFO L273 TraceCheckUtils]: 4: Hoare triple {11921#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))) (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; {11921#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))) (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-07 18:34:45,007 INFO L273 TraceCheckUtils]: 5: Hoare triple {11921#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))) (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); {11901#false} is VALID [2019-01-07 18:34:45,008 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:34:45,008 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:34:45,079 INFO L273 TraceCheckUtils]: 5: Hoare triple {11928#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {11901#false} is VALID [2019-01-07 18:34:45,080 INFO L273 TraceCheckUtils]: 4: Hoare triple {11928#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {11928#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:34:45,081 INFO L273 TraceCheckUtils]: 3: Hoare triple {11935#(<= (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]; {11928#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:34:45,082 INFO L273 TraceCheckUtils]: 2: Hoare triple {11939#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {11935#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:34:45,085 INFO L273 TraceCheckUtils]: 1: Hoare triple {11943#(<= (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_p3 (+ (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_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {11939#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:34:45,087 INFO L273 TraceCheckUtils]: 0: Hoare triple {11900#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]; {11943#(<= (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_p3 (+ (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_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:34:45,087 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:34:45,106 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:34:45,107 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-07 18:34:45,107 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:34:45,107 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-07 18:34:45,107 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:34:45,107 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 18:34:45,124 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:34:45,124 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 18:34:45,125 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 18:34:45,125 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=67, Invalid=115, Unknown=0, NotChecked=0, Total=182 [2019-01-07 18:34:45,125 INFO L87 Difference]: Start difference. First operand 68 states and 301 transitions. Second operand 10 states. [2019-01-07 18:34:50,464 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:34:50,464 INFO L93 Difference]: Finished difference Result 104 states and 381 transitions. [2019-01-07 18:34:50,464 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 18:34:50,464 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-07 18:34:50,464 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:34:50,465 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:34:50,465 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 60 transitions. [2019-01-07 18:34:50,465 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:34:50,465 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 60 transitions. [2019-01-07 18:34:50,465 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 60 transitions. [2019-01-07 18:34:50,547 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-07 18:34:50,549 INFO L225 Difference]: With dead ends: 104 [2019-01-07 18:34:50,549 INFO L226 Difference]: Without dead ends: 103 [2019-01-07 18:34:50,550 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 63 ImplicationChecksByTransitivity, 0.8s TimeCoverageRelationStatistics Valid=100, Invalid=172, Unknown=0, NotChecked=0, Total=272 [2019-01-07 18:34:50,550 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 103 states. [2019-01-07 18:34:55,163 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 103 to 74. [2019-01-07 18:34:55,163 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:34:55,163 INFO L82 GeneralOperation]: Start isEquivalent. First operand 103 states. Second operand 74 states. [2019-01-07 18:34:55,164 INFO L74 IsIncluded]: Start isIncluded. First operand 103 states. Second operand 74 states. [2019-01-07 18:34:55,164 INFO L87 Difference]: Start difference. First operand 103 states. Second operand 74 states. [2019-01-07 18:34:55,166 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:34:55,166 INFO L93 Difference]: Finished difference Result 103 states and 378 transitions. [2019-01-07 18:34:55,167 INFO L276 IsEmpty]: Start isEmpty. Operand 103 states and 378 transitions. [2019-01-07 18:34:55,167 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:34:55,167 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:34:55,167 INFO L74 IsIncluded]: Start isIncluded. First operand 74 states. Second operand 103 states. [2019-01-07 18:34:55,167 INFO L87 Difference]: Start difference. First operand 74 states. Second operand 103 states. [2019-01-07 18:34:55,170 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:34:55,170 INFO L93 Difference]: Finished difference Result 103 states and 378 transitions. [2019-01-07 18:34:55,170 INFO L276 IsEmpty]: Start isEmpty. Operand 103 states and 378 transitions. [2019-01-07 18:34:55,171 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:34:55,171 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:34:55,171 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:34:55,171 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:34:55,171 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 74 states. [2019-01-07 18:34:55,173 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 74 states to 74 states and 337 transitions. [2019-01-07 18:34:55,173 INFO L78 Accepts]: Start accepts. Automaton has 74 states and 337 transitions. Word has length 6 [2019-01-07 18:34:55,173 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:34:55,173 INFO L480 AbstractCegarLoop]: Abstraction has 74 states and 337 transitions. [2019-01-07 18:34:55,173 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 18:34:55,174 INFO L276 IsEmpty]: Start isEmpty. Operand 74 states and 337 transitions. [2019-01-07 18:34:55,174 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 18:34:55,174 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:34:55,174 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 18:34:55,174 INFO L423 AbstractCegarLoop]: === Iteration 37 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:34:55,175 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:34:55,175 INFO L82 PathProgramCache]: Analyzing trace with hash 904320028, now seen corresponding path program 1 times [2019-01-07 18:34:55,175 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:34:55,175 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:34:55,175 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:34:55,176 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:34:55,176 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:34:55,180 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:34:55,272 INFO L273 TraceCheckUtils]: 0: Hoare triple {12445#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]; {12447#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 18:34:55,274 INFO L273 TraceCheckUtils]: 1: Hoare triple {12447#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {12448#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-07 18:34:55,275 INFO L273 TraceCheckUtils]: 2: Hoare triple {12448#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {12448#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-07 18:34:55,276 INFO L273 TraceCheckUtils]: 3: Hoare triple {12448#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {12449#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-07 18:34:55,277 INFO L273 TraceCheckUtils]: 4: Hoare triple {12449#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {12450#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:34:55,277 INFO L273 TraceCheckUtils]: 5: Hoare triple {12450#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {12446#false} is VALID [2019-01-07 18:34:55,278 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 18:34:55,278 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:34:55,278 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:34:55,278 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-07 18:34:55,278 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [18], [24], [25] [2019-01-07 18:34:55,281 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:34:55,281 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:34:55,293 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:34:55,293 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 60 root evaluator evaluations with a maximum evaluation depth of 2. Performed 60 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-07 18:34:55,293 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:34:55,293 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:34:55,294 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:34:55,294 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 34 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 34 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:34:55,303 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:34:55,303 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:34:55,307 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:34:55,312 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:34:55,313 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:34:55,353 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:55,354 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-07 18:34:55,399 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:55,400 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:55,401 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-07 18:34:55,452 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:55,453 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:55,454 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:55,456 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:55,456 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-07 18:34:55,459 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-07 18:34:55,471 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:55,482 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:55,501 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-07 18:34:55,511 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-07 18:34:55,522 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-07 18:34:55,537 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-07 18:34:55,559 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-07 18:34:55,564 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-07 18:34:55,596 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:55,610 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:55,623 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:55,635 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:34:55,659 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-07 18:34:55,659 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 3 variables, input treesize:52, output treesize:50 [2019-01-07 18:34:55,667 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:34:55,667 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_189|, ULTIMATE.start_main_p5, |v_#valid_39|]. (let ((.cse1 (store |v_#valid_39| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= (store (store (store (store (store |v_#memory_int_189| 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_p3)) (= 0 (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4)) (= (select .cse1 ULTIMATE.start_main_p2) 0)))) [2019-01-07 18:34:55,667 WARN L386 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-07 18:34:55,760 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:55,761 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 18:34:55,766 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:34:55,785 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:34:55,785 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:55, output treesize:33 [2019-01-07 18:34:55,877 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:34:55,877 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_190|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_190| 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_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_190| ULTIMATE.start_main_p2) 0) (= 0 .cse0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_190| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_190| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= |#memory_int| (store |v_#memory_int_190| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))))) [2019-01-07 18:34:55,877 WARN L386 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-07 18:34:55,936 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:55,938 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:55,939 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:55,940 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:55,941 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:55,942 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:55,943 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-07 18:34:55,948 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:34:55,968 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:34:55,968 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:45, output treesize:27 [2019-01-07 18:34:55,995 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:34:55,995 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_191|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_191| ULTIMATE.start_main_p1))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= .cse0 0) (= (select |v_#memory_int_191| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_191| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (+ (select |v_#memory_int_191| ULTIMATE.start_main_p4) 1) 0) (= (store |v_#memory_int_191| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|))) [2019-01-07 18:34:55,995 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, 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-07 18:34:56,043 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:56,045 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:56,046 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:56,047 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:56,048 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:56,050 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:56,051 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:56,052 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:56,053 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:34:56,054 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:34:56,054 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 77 [2019-01-07 18:34:56,058 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:34:56,084 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:34:56,084 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:37, output treesize:27 [2019-01-07 18:34:56,178 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:34:56,178 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_192|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_192| ULTIMATE.start_main_p3))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (+ (select |v_#memory_int_192| ULTIMATE.start_main_p4) 1) 0) (= (select |v_#memory_int_192| ULTIMATE.start_main_p1) 1) (= |#memory_int| (store |v_#memory_int_192| ULTIMATE.start_main_p3 (+ .cse0 1))) (= (select |v_#memory_int_192| ULTIMATE.start_main_p2) 0) (= 0 .cse0))) [2019-01-07 18:34:56,178 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (+ (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)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1))) [2019-01-07 18:34:56,221 INFO L273 TraceCheckUtils]: 0: Hoare triple {12445#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]; {12454#(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-07 18:34:56,242 INFO L273 TraceCheckUtils]: 1: Hoare triple {12454#(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]; {12458#(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-07 18:34:56,251 INFO L273 TraceCheckUtils]: 2: Hoare triple {12458#(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_p1 := #memory_int[main_p1] + 1]; {12462#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (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-07 18:34:56,252 INFO L273 TraceCheckUtils]: 3: Hoare triple {12462#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (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]; {12466#(and (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_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))))} is VALID [2019-01-07 18:34:56,253 INFO L273 TraceCheckUtils]: 4: Hoare triple {12466#(and (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_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))))} assume #memory_int[main_p1] >= 0; {12466#(and (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_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))))} is VALID [2019-01-07 18:34:56,253 INFO L273 TraceCheckUtils]: 5: Hoare triple {12466#(and (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_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))))} assume !(#memory_int[main_p2] <= 0); {12446#false} is VALID [2019-01-07 18:34:56,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-07 18:34:56,254 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:34:56,330 INFO L273 TraceCheckUtils]: 5: Hoare triple {12473#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {12446#false} is VALID [2019-01-07 18:34:56,331 INFO L273 TraceCheckUtils]: 4: Hoare triple {12473#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {12473#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:34:56,332 INFO L273 TraceCheckUtils]: 3: Hoare triple {12480#(<= (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]; {12473#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:34:56,334 INFO L273 TraceCheckUtils]: 2: Hoare triple {12484#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {12480#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:34:56,336 INFO L273 TraceCheckUtils]: 1: Hoare triple {12488#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {12484#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:34:56,338 INFO L273 TraceCheckUtils]: 0: Hoare triple {12445#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]; {12488#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:34:56,339 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:34:56,360 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:34:56,360 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-07 18:34:56,360 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:34:56,360 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-07 18:34:56,360 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:34:56,360 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 18:34:56,377 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:34:56,377 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 18:34:56,378 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 18:34:56,378 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=65, Invalid=117, Unknown=0, NotChecked=0, Total=182 [2019-01-07 18:34:56,378 INFO L87 Difference]: Start difference. First operand 74 states and 337 transitions. Second operand 10 states. [2019-01-07 18:35:02,272 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:35:02,272 INFO L93 Difference]: Finished difference Result 107 states and 399 transitions. [2019-01-07 18:35:02,272 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 18:35:02,273 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-07 18:35:02,273 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:35:02,273 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:35:02,273 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 60 transitions. [2019-01-07 18:35:02,273 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:35:02,273 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 60 transitions. [2019-01-07 18:35:02,274 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 60 transitions. [2019-01-07 18:35:02,354 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-07 18:35:02,357 INFO L225 Difference]: With dead ends: 107 [2019-01-07 18:35:02,357 INFO L226 Difference]: Without dead ends: 106 [2019-01-07 18:35:02,358 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 2 SyntacticMatches, 1 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 61 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=98, Invalid=174, Unknown=0, NotChecked=0, Total=272 [2019-01-07 18:35:02,358 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 106 states. [2019-01-07 18:35:07,011 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 106 to 74. [2019-01-07 18:35:07,011 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:35:07,011 INFO L82 GeneralOperation]: Start isEquivalent. First operand 106 states. Second operand 74 states. [2019-01-07 18:35:07,011 INFO L74 IsIncluded]: Start isIncluded. First operand 106 states. Second operand 74 states. [2019-01-07 18:35:07,011 INFO L87 Difference]: Start difference. First operand 106 states. Second operand 74 states. [2019-01-07 18:35:07,013 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:35:07,014 INFO L93 Difference]: Finished difference Result 106 states and 396 transitions. [2019-01-07 18:35:07,014 INFO L276 IsEmpty]: Start isEmpty. Operand 106 states and 396 transitions. [2019-01-07 18:35:07,014 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:35:07,014 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:35:07,014 INFO L74 IsIncluded]: Start isIncluded. First operand 74 states. Second operand 106 states. [2019-01-07 18:35:07,015 INFO L87 Difference]: Start difference. First operand 74 states. Second operand 106 states. [2019-01-07 18:35:07,017 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:35:07,017 INFO L93 Difference]: Finished difference Result 106 states and 396 transitions. [2019-01-07 18:35:07,017 INFO L276 IsEmpty]: Start isEmpty. Operand 106 states and 396 transitions. [2019-01-07 18:35:07,017 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:35:07,017 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:35:07,017 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:35:07,017 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:35:07,017 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 74 states. [2019-01-07 18:35:07,019 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 74 states to 74 states and 337 transitions. [2019-01-07 18:35:07,019 INFO L78 Accepts]: Start accepts. Automaton has 74 states and 337 transitions. Word has length 6 [2019-01-07 18:35:07,019 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:35:07,019 INFO L480 AbstractCegarLoop]: Abstraction has 74 states and 337 transitions. [2019-01-07 18:35:07,019 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 18:35:07,019 INFO L276 IsEmpty]: Start isEmpty. Operand 74 states and 337 transitions. [2019-01-07 18:35:07,020 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 18:35:07,020 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:35:07,020 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 18:35:07,020 INFO L423 AbstractCegarLoop]: === Iteration 38 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:35:07,020 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:35:07,020 INFO L82 PathProgramCache]: Analyzing trace with hash 906534236, now seen corresponding path program 1 times [2019-01-07 18:35:07,020 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:35:07,021 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:35:07,021 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:35:07,021 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:35:07,021 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:35:07,023 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:35:07,080 INFO L273 TraceCheckUtils]: 0: Hoare triple {13002#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]; {13004#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= 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)))} is VALID [2019-01-07 18:35:07,081 INFO L273 TraceCheckUtils]: 1: Hoare triple {13004#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= 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)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {13005#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-07 18:35:07,082 INFO L273 TraceCheckUtils]: 2: Hoare triple {13005#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {13006#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-07 18:35:07,082 INFO L273 TraceCheckUtils]: 3: Hoare triple {13006#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p1] >= 0; {13006#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-07 18:35:07,082 INFO L273 TraceCheckUtils]: 4: Hoare triple {13006#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p2] <= 0; {13006#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-07 18:35:07,083 INFO L273 TraceCheckUtils]: 5: Hoare triple {13006#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {13003#false} is VALID [2019-01-07 18:35:07,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-07 18:35:07,083 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:35:07,083 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:35:07,083 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-07 18:35:07,083 INFO L207 CegarAbsIntRunner]: [0], [18], [20], [24], [26], [27] [2019-01-07 18:35:07,086 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:35:07,086 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:35:07,101 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:35:07,101 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 60 root evaluator evaluations with a maximum evaluation depth of 2. Performed 60 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-07 18:35:07,101 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:35:07,101 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:35:07,102 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:35:07,102 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 35 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 35 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:35:07,112 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:35:07,112 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:35:07,116 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:35:07,131 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:35:07,132 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:35:07,150 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-07 18:35:07,158 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-07 18:35:07,168 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:07,169 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:07,170 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-07 18:35:07,182 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:07,184 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:07,185 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:07,186 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-07 18:35:07,203 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:07,206 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:07,207 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:07,209 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:07,210 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-07 18:35:07,215 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-07 18:35:07,245 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:35:07,261 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:35:07,275 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:35:07,288 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:35:07,313 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-07 18:35:07,343 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:07,345 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:07,346 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-07 18:35:07,405 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:07,406 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:07,408 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:07,410 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:07,411 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-07 18:35:07,484 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:07,486 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:07,487 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:07,488 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:07,489 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:07,491 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:07,492 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-07 18:35:07,496 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-07 18:35:07,513 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:35:07,530 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:35:07,548 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:35:07,587 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-07 18:35:07,587 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 4 variables, input treesize:61, output treesize:62 [2019-01-07 18:35:07,597 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:35:07,597 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_196|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2, |v_#valid_40|]. (let ((.cse1 (store (store |v_#valid_40| ULTIMATE.start_main_p1 1) ULTIMATE.start_main_p2 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p3 1))) (and (= 0 (select .cse0 ULTIMATE.start_main_p4)) (= 0 (select .cse1 ULTIMATE.start_main_p3)) (= (store (store (store (store (store |v_#memory_int_196| 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_p4 1) ULTIMATE.start_main_p5))))) [2019-01-07 18:35:07,597 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= (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_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_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 18:35:07,690 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:07,691 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:35:07,696 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:35:07,718 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:35:07,719 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:55, output treesize:33 [2019-01-07 18:35:07,736 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:35:07,737 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_197|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_197| ULTIMATE.start_main_p5))) (and (= (select |v_#memory_int_197| ULTIMATE.start_main_p1) 0) (= (store |v_#memory_int_197| 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)) (= (select |v_#memory_int_197| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 .cse0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_197| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-07 18:35:07,737 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [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) (= 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-07 18:35:07,800 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:07,801 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:07,803 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:07,804 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:07,805 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:07,806 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:07,807 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 57 [2019-01-07 18:35:07,812 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:35:07,835 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:35:07,835 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:43, output treesize:25 [2019-01-07 18:35:07,853 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:35:07,853 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_198|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_198| ULTIMATE.start_main_p4))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= |#memory_int| (store |v_#memory_int_198| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= .cse0 0) (= (select |v_#memory_int_198| ULTIMATE.start_main_p1) 0) (= 0 (select |v_#memory_int_198| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_198| ULTIMATE.start_main_p5) 1))) [2019-01-07 18:35:07,853 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 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)) [2019-01-07 18:35:07,915 INFO L273 TraceCheckUtils]: 0: Hoare triple {13002#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]; {13010#(and (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_p5 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (exists ((ULTIMATE.start_main_p1 Int)) (and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-07 18:35:07,917 INFO L273 TraceCheckUtils]: 1: Hoare triple {13010#(and (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_p5 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (exists ((ULTIMATE.start_main_p1 Int)) (and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {13014#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 18:35:07,919 INFO L273 TraceCheckUtils]: 2: Hoare triple {13014#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {13018#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) (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)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 18:35:07,920 INFO L273 TraceCheckUtils]: 3: Hoare triple {13018#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) (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)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p1] >= 0; {13018#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) (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)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 18:35:07,921 INFO L273 TraceCheckUtils]: 4: Hoare triple {13018#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) (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)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p2] <= 0; {13018#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) (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)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 18:35:07,922 INFO L273 TraceCheckUtils]: 5: Hoare triple {13018#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) (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)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume !(#memory_int[main_p3] >= 0); {13003#false} is VALID [2019-01-07 18:35:07,923 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:35:07,923 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:35:07,977 INFO L273 TraceCheckUtils]: 5: Hoare triple {13028#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {13003#false} is VALID [2019-01-07 18:35:07,977 INFO L273 TraceCheckUtils]: 4: Hoare triple {13028#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {13028#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 18:35:07,978 INFO L273 TraceCheckUtils]: 3: Hoare triple {13028#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {13028#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 18:35:07,979 INFO L273 TraceCheckUtils]: 2: Hoare triple {13038#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {13028#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 18:35:07,981 INFO L273 TraceCheckUtils]: 1: Hoare triple {13042#(<= 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_p3))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {13038#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-07 18:35:07,983 INFO L273 TraceCheckUtils]: 0: Hoare triple {13002#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]; {13042#(<= 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_p3))} is VALID [2019-01-07 18:35:07,983 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:35:08,004 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:35:08,004 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 18:35:08,004 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:35:08,004 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-07 18:35:08,004 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:35:08,005 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:35:08,021 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:35:08,022 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:35:08,022 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:35:08,022 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:35:08,023 INFO L87 Difference]: Start difference. First operand 74 states and 337 transitions. Second operand 8 states. [2019-01-07 18:35:13,583 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:35:13,583 INFO L93 Difference]: Finished difference Result 100 states and 371 transitions. [2019-01-07 18:35:13,584 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 18:35:13,584 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-07 18:35:13,584 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:35:13,584 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:35:13,584 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 54 transitions. [2019-01-07 18:35:13,584 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:35:13,585 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 54 transitions. [2019-01-07 18:35:13,585 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 54 transitions. [2019-01-07 18:35:13,660 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 54 edges. 54 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:35:13,663 INFO L225 Difference]: With dead ends: 100 [2019-01-07 18:35:13,663 INFO L226 Difference]: Without dead ends: 98 [2019-01-07 18:35:13,663 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 4 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-07 18:35:13,663 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 98 states. [2019-01-07 18:35:18,670 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 98 to 75. [2019-01-07 18:35:18,671 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:35:18,671 INFO L82 GeneralOperation]: Start isEquivalent. First operand 98 states. Second operand 75 states. [2019-01-07 18:35:18,671 INFO L74 IsIncluded]: Start isIncluded. First operand 98 states. Second operand 75 states. [2019-01-07 18:35:18,671 INFO L87 Difference]: Start difference. First operand 98 states. Second operand 75 states. [2019-01-07 18:35:18,674 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:35:18,674 INFO L93 Difference]: Finished difference Result 98 states and 368 transitions. [2019-01-07 18:35:18,674 INFO L276 IsEmpty]: Start isEmpty. Operand 98 states and 368 transitions. [2019-01-07 18:35:18,675 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:35:18,675 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:35:18,675 INFO L74 IsIncluded]: Start isIncluded. First operand 75 states. Second operand 98 states. [2019-01-07 18:35:18,675 INFO L87 Difference]: Start difference. First operand 75 states. Second operand 98 states. [2019-01-07 18:35:18,677 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:35:18,677 INFO L93 Difference]: Finished difference Result 98 states and 368 transitions. [2019-01-07 18:35:18,677 INFO L276 IsEmpty]: Start isEmpty. Operand 98 states and 368 transitions. [2019-01-07 18:35:18,677 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:35:18,677 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:35:18,677 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:35:18,678 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:35:18,678 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 75 states. [2019-01-07 18:35:18,680 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 75 states to 75 states and 343 transitions. [2019-01-07 18:35:18,680 INFO L78 Accepts]: Start accepts. Automaton has 75 states and 343 transitions. Word has length 6 [2019-01-07 18:35:18,680 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:35:18,680 INFO L480 AbstractCegarLoop]: Abstraction has 75 states and 343 transitions. [2019-01-07 18:35:18,680 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:35:18,680 INFO L276 IsEmpty]: Start isEmpty. Operand 75 states and 343 transitions. [2019-01-07 18:35:18,680 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 18:35:18,681 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:35:18,681 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 18:35:18,681 INFO L423 AbstractCegarLoop]: === Iteration 39 === [ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:35:18,681 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:35:18,681 INFO L82 PathProgramCache]: Analyzing trace with hash 906163226, now seen corresponding path program 1 times [2019-01-07 18:35:18,681 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:35:18,682 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:35:18,682 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:35:18,682 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:35:18,682 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:35:18,685 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:35:18,824 INFO L273 TraceCheckUtils]: 0: Hoare triple {13529#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]; {13531#(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-07 18:35:18,825 INFO L273 TraceCheckUtils]: 1: Hoare triple {13531#(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]; {13532#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-07 18:35:18,826 INFO L273 TraceCheckUtils]: 2: Hoare triple {13532#(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]; {13533#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 18:35:18,827 INFO L273 TraceCheckUtils]: 3: Hoare triple {13533#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {13534#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-07 18:35:18,827 INFO L273 TraceCheckUtils]: 4: Hoare triple {13534#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume #memory_int[main_p1] >= 0; {13534#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-07 18:35:18,828 INFO L273 TraceCheckUtils]: 5: Hoare triple {13534#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume !(#memory_int[main_p2] <= 0); {13530#false} is VALID [2019-01-07 18:35:18,828 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:35:18,829 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:35:18,829 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:35:18,829 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-07 18:35:18,829 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [20], [24], [25] [2019-01-07 18:35:18,832 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:35:18,832 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:35:18,841 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:35:18,841 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 60 root evaluator evaluations with a maximum evaluation depth of 2. Performed 60 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-07 18:35:18,841 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:35:18,841 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:35:18,841 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:35:18,842 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 36 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 36 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:35:18,851 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:35:18,851 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:35:18,855 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:35:18,859 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:35:18,860 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:35:18,913 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:18,914 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-07 18:35:18,963 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:18,965 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:18,966 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 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-07 18:35:19,021 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:19,023 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:19,024 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:19,026 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:19,026 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-07 18:35:19,030 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-07 18:35:19,045 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:35:19,058 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:35:19,083 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-07 18:35:19,098 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-07 18:35:19,117 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-07 18:35:19,140 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-07 18:35:19,167 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-07 18:35:19,175 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-07 18:35:19,196 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:35:19,212 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:35:19,227 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:35:19,241 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:35:19,276 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-07 18:35:19,276 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:52, output treesize:50 [2019-01-07 18:35:19,287 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:35:19,287 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_201|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, |v_#valid_41|]. (let ((.cse1 (store |v_#valid_41| 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)) (= 0 (select .cse0 ULTIMATE.start_main_p3)) (= 0 (select .cse1 ULTIMATE.start_main_p2)) (= |#memory_int| (store (store (store (store (store |v_#memory_int_201| 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-07 18:35:19,287 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (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-07 18:35:19,440 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:19,470 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-07 18:35:19,486 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 16 xjuncts. [2019-01-07 18:35:19,672 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-07 18:35:19,673 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:60, output treesize:199 [2019-01-07 18:35:22,643 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:35:22,644 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_202|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_202| ULTIMATE.start_main_p5))) (and (= (select |v_#memory_int_202| ULTIMATE.start_main_p4) 0) (= 0 (select |v_#memory_int_202| ULTIMATE.start_main_p1)) (= |#memory_int| (store |v_#memory_int_202| ULTIMATE.start_main_p5 (+ .cse0 1))) (= 0 (select |v_#memory_int_202| ULTIMATE.start_main_p2)) (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)) (= 0 (select |v_#memory_int_202| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= .cse0 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-07 18:35:22,644 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_75, v_prenex_74, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, v_prenex_76, v_prenex_77, v_prenex_72, v_prenex_73, v_prenex_79, v_prenex_78]. (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_75 v_prenex_74)) (not (= v_prenex_75 ULTIMATE.start_main_p2)) .cse0 .cse1 (not (= ULTIMATE.start_main_p2 v_prenex_74)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) .cse2 (not (= v_prenex_75 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_75) 0) (not (= ULTIMATE.start_main_p1 v_prenex_74)) (= (select |#memory_int| v_prenex_74) 0)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= .cse3 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) .cse2 (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)) (and (not (= ULTIMATE.start_main_p1 v_prenex_76)) (not (= v_prenex_77 ULTIMATE.start_main_p2)) .cse0 .cse1 (= 1 (select |#memory_int| v_prenex_76)) .cse2 (not (= v_prenex_77 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_77) 0)) (and .cse0 .cse1 (not (= ULTIMATE.start_main_p2 v_prenex_72)) (= (select |#memory_int| v_prenex_73) 1) .cse2 (not (= v_prenex_73 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_72) 0) (not (= ULTIMATE.start_main_p1 v_prenex_72))) (and (not (= v_prenex_79 v_prenex_78)) (= 1 .cse4) .cse0 (not (= v_prenex_79 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_79) 0) (= (select |#memory_int| v_prenex_78) 0) (not (= ULTIMATE.start_main_p1 v_prenex_78)))))) [2019-01-07 18:35:22,815 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:22,817 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:22,818 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:22,819 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:22,820 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 51 treesize of output 57 [2019-01-07 18:35:22,823 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:35:22,902 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:22,903 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:22,904 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:22,906 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:22,906 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:35:22,907 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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 65 [2019-01-07 18:35:22,913 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2019-01-07 18:35:22,988 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:22,989 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:22,991 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:22,992 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:22,993 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:22,994 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:35:22,994 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 63 [2019-01-07 18:35:22,998 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-07 18:35:23,061 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-07 18:35:23,062 INFO L202 ElimStorePlain]: Needed 4 recursive calls to eliminate 12 variables, input treesize:142, output treesize:92 [2019-01-07 18:35:25,495 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:35:25,496 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_203|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, v_prenex_82, v_prenex_83, v_prenex_73, v_prenex_72, v_prenex_80, v_prenex_81, v_prenex_79, v_prenex_78]. (or (let ((.cse0 (select |v_#memory_int_203| ULTIMATE.start_main_p1))) (and (= (select |v_#memory_int_203| ULTIMATE.start_main_p4) 0) (= |#memory_int| (store |v_#memory_int_203| ULTIMATE.start_main_p1 (+ .cse0 1))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= .cse0 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_203| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_203| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (let ((.cse1 (select v_prenex_82 v_prenex_83))) (and (= 1 (select v_prenex_82 v_prenex_73)) (= .cse1 0) (not (= v_prenex_83 v_prenex_72)) (= |#memory_int| (store v_prenex_82 v_prenex_83 (+ .cse1 1))) (= 0 (select v_prenex_82 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 v_prenex_72)) (not (= ULTIMATE.start_main_p2 v_prenex_83)) (= 0 (select v_prenex_82 v_prenex_72)) (not (= v_prenex_73 v_prenex_83)))) (let ((.cse2 (select v_prenex_80 v_prenex_81))) (and (not (= v_prenex_79 v_prenex_78)) (= .cse2 0) (not (= v_prenex_79 v_prenex_81)) (= |#memory_int| (store v_prenex_80 v_prenex_81 (+ .cse2 1))) (= 0 (select v_prenex_80 v_prenex_78)) (= 0 (select v_prenex_80 v_prenex_79)) (not (= v_prenex_81 v_prenex_78)) (= 1 (select v_prenex_80 ULTIMATE.start_main_p2))))) [2019-01-07 18:35:25,496 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, v_prenex_83, v_prenex_73, v_prenex_72, v_prenex_79, v_prenex_78, v_prenex_81]. (let ((.cse1 (select |#memory_int| ULTIMATE.start_main_p2))) (let ((.cse0 (= 0 .cse1))) (or (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_p1) 2) .cse0 (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) (and (= 1 (select |#memory_int| v_prenex_83)) (= (select |#memory_int| v_prenex_73) 1) .cse0 (not (= ULTIMATE.start_main_p2 v_prenex_72)) (= 0 (select |#memory_int| v_prenex_72)) (not (= v_prenex_73 v_prenex_83))) (and (not (= v_prenex_79 v_prenex_78)) (= 0 (select |#memory_int| v_prenex_79)) (= (select |#memory_int| v_prenex_81) 1) (= 1 .cse1) (= (select |#memory_int| v_prenex_78) 0) (not (= v_prenex_81 ULTIMATE.start_main_p2)))))) [2019-01-07 18:35:25,629 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:25,631 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:25,632 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:25,633 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:25,634 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:25,635 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:25,636 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-07 18:35:25,639 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:35:25,708 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:25,709 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:25,710 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:25,712 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:25,713 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:25,714 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:25,715 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:25,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, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 39 treesize of output 61 [2019-01-07 18:35:25,719 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2019-01-07 18:35:25,786 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:25,787 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:25,788 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:25,789 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:25,790 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:35:25,791 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:35:25,792 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 39 treesize of output 53 [2019-01-07 18:35:25,794 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-07 18:35:25,847 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-07 18:35:25,847 INFO L202 ElimStorePlain]: Needed 4 recursive calls to eliminate 12 variables, input treesize:122, output treesize:84 [2019-01-07 18:35:27,503 WARN L194 Executor]: External (z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000) stderr output: (error "out of memory") [2019-01-07 18:35:27,704 WARN L521 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 36 z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:35:27,706 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:2024 -smt2 -in -t:2000)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:382) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.PartialQuantifierElimination.elim(PartialQuantifierElimination.java:295) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.PartialQuantifierElimination.tryToEliminate(PartialQuantifierElimination.java:101) 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-07 18:35:27,713 INFO L168 Benchmark]: Toolchain (without parser) took 264011.24 ms. Allocated memory was 1.5 GB in the beginning and 2.4 GB in the end (delta: 838.9 MB). Free memory was 1.5 GB in the beginning and 2.1 GB in the end (delta: -677.1 MB). Peak memory consumption was 161.7 MB. Max. memory is 7.1 GB. [2019-01-07 18:35:27,713 INFO L168 Benchmark]: Boogie PL CUP Parser took 2.33 ms. Allocated memory is still 1.5 GB. Free memory is still 1.5 GB. There was no memory consumed. Max. memory is 7.1 GB. [2019-01-07 18:35:27,714 INFO L168 Benchmark]: Boogie Procedure Inliner took 79.20 ms. Allocated memory is still 1.5 GB. Free memory is still 1.5 GB. There was no memory consumed. Max. memory is 7.1 GB. [2019-01-07 18:35:27,714 INFO L168 Benchmark]: Boogie Preprocessor took 43.15 ms. Allocated memory is still 1.5 GB. Free memory is still 1.5 GB. There was no memory consumed. Max. memory is 7.1 GB. [2019-01-07 18:35:27,714 INFO L168 Benchmark]: RCFGBuilder took 662.35 ms. Allocated memory is still 1.5 GB. Free memory was 1.5 GB in the beginning and 1.4 GB in the end (delta: 31.7 MB). Peak memory consumption was 31.7 MB. Max. memory is 7.1 GB. [2019-01-07 18:35:27,714 INFO L168 Benchmark]: TraceAbstraction took 263221.59 ms. Allocated memory was 1.5 GB in the beginning and 2.4 GB in the end (delta: 838.9 MB). Free memory was 1.4 GB in the beginning and 2.1 GB in the end (delta: -708.8 MB). Peak memory consumption was 130.0 MB. Max. memory is 7.1 GB. [2019-01-07 18:35:27,715 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 2.33 ms. Allocated memory is still 1.5 GB. Free memory is still 1.5 GB. There was no memory consumed. Max. memory is 7.1 GB. * Boogie Procedure Inliner took 79.20 ms. Allocated memory is still 1.5 GB. Free memory is still 1.5 GB. There was no memory consumed. Max. memory is 7.1 GB. * Boogie Preprocessor took 43.15 ms. Allocated memory is still 1.5 GB. Free memory is still 1.5 GB. There was no memory consumed. Max. memory is 7.1 GB. * RCFGBuilder took 662.35 ms. Allocated memory is still 1.5 GB. Free memory was 1.5 GB in the beginning and 1.4 GB in the end (delta: 31.7 MB). Peak memory consumption was 31.7 MB. Max. memory is 7.1 GB. * TraceAbstraction took 263221.59 ms. Allocated memory was 1.5 GB in the beginning and 2.4 GB in the end (delta: 838.9 MB). Free memory was 1.4 GB in the beginning and 2.1 GB in the end (delta: -708.8 MB). Peak memory consumption was 130.0 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:2024 -smt2 -in -t:2000)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:2024 -smt2 -in -t:2000)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...