java -ea -Xmx8000000000 -Xss4m -jar ./plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -data @noDefault -ultimatedata ./data -tc ../../../trunk/examples/toolchains/AutomizerBplInline.xml -s ../../../trunk/examples/settings/ai/array-bench/reach_32bit_compound_exp_cong.epf -i ../../../trunk/examples/programs/heapseparator/speedup-poc-dd-4-limited.bpl -------------------------------------------------------------------------------- This is Ultimate 0.1.24-b7bd044-m [2019-01-18 14:19:27,427 INFO L170 SettingsManager]: Resetting all preferences to default values... [2019-01-18 14:19:27,429 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2019-01-18 14:19:27,441 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2019-01-18 14:19:27,441 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2019-01-18 14:19:27,442 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2019-01-18 14:19:27,443 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2019-01-18 14:19:27,445 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2019-01-18 14:19:27,447 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2019-01-18 14:19:27,448 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2019-01-18 14:19:27,449 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2019-01-18 14:19:27,449 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2019-01-18 14:19:27,450 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2019-01-18 14:19:27,451 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2019-01-18 14:19:27,452 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2019-01-18 14:19:27,453 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2019-01-18 14:19:27,454 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2019-01-18 14:19:27,456 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2019-01-18 14:19:27,458 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2019-01-18 14:19:27,460 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2019-01-18 14:19:27,461 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2019-01-18 14:19:27,462 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2019-01-18 14:19:27,464 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2019-01-18 14:19:27,465 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2019-01-18 14:19:27,465 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2019-01-18 14:19:27,466 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2019-01-18 14:19:27,467 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2019-01-18 14:19:27,468 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2019-01-18 14:19:27,469 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2019-01-18 14:19:27,470 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2019-01-18 14:19:27,470 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2019-01-18 14:19:27,471 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2019-01-18 14:19:27,471 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2019-01-18 14:19:27,471 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2019-01-18 14:19:27,472 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2019-01-18 14:19:27,473 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2019-01-18 14:19:27,473 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-18 14:19:27,495 INFO L110 SettingsManager]: Loading preferences was successful [2019-01-18 14:19:27,495 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2019-01-18 14:19:27,496 INFO L131 SettingsManager]: Preferences of Boogie Preprocessor differ from their defaults: [2019-01-18 14:19:27,497 INFO L133 SettingsManager]: * Show backtranslation warnings=false [2019-01-18 14:19:27,499 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2019-01-18 14:19:27,500 INFO L133 SettingsManager]: * User list type=DISABLED [2019-01-18 14:19:27,500 INFO L133 SettingsManager]: * Inline calls to unimplemented procedures=true [2019-01-18 14:19:27,500 INFO L131 SettingsManager]: Preferences of Abstract Interpretation differ from their defaults: [2019-01-18 14:19:27,500 INFO L133 SettingsManager]: * Explicit value domain=true [2019-01-18 14:19:27,500 INFO L133 SettingsManager]: * Abstract domain for RCFG-of-the-future=PoormanAbstractDomain [2019-01-18 14:19:27,501 INFO L133 SettingsManager]: * Octagon Domain=false [2019-01-18 14:19:27,501 INFO L133 SettingsManager]: * Abstract domain=CompoundDomain [2019-01-18 14:19:27,501 INFO L133 SettingsManager]: * Check feasibility of abstract posts with an SMT solver=true [2019-01-18 14:19:27,501 INFO L133 SettingsManager]: * Interval Domain=false [2019-01-18 14:19:27,503 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2019-01-18 14:19:27,503 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2019-01-18 14:19:27,503 INFO L133 SettingsManager]: * Use SBE=true [2019-01-18 14:19:27,503 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2019-01-18 14:19:27,504 INFO L133 SettingsManager]: * sizeof long=4 [2019-01-18 14:19:27,505 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2019-01-18 14:19:27,505 INFO L133 SettingsManager]: * sizeof POINTER=4 [2019-01-18 14:19:27,506 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2019-01-18 14:19:27,506 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2019-01-18 14:19:27,506 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2019-01-18 14:19:27,506 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2019-01-18 14:19:27,506 INFO L133 SettingsManager]: * sizeof long double=12 [2019-01-18 14:19:27,506 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2019-01-18 14:19:27,507 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2019-01-18 14:19:27,507 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2019-01-18 14:19:27,507 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2019-01-18 14:19:27,507 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2019-01-18 14:19:27,508 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2019-01-18 14:19:27,508 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2019-01-18 14:19:27,508 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2019-01-18 14:19:27,508 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2019-01-18 14:19:27,508 INFO L133 SettingsManager]: * Trace refinement strategy=TAIPAN [2019-01-18 14:19:27,509 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2019-01-18 14:19:27,509 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2019-01-18 14:19:27,509 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2019-01-18 14:19:27,509 INFO L133 SettingsManager]: * Abstract interpretation Mode=USE_PREDICATES [2019-01-18 14:19:27,555 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2019-01-18 14:19:27,571 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2019-01-18 14:19:27,576 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2019-01-18 14:19:27,577 INFO L271 PluginConnector]: Initializing Boogie PL CUP Parser... [2019-01-18 14:19:27,578 INFO L276 PluginConnector]: Boogie PL CUP Parser initialized [2019-01-18 14:19:27,578 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/programs/heapseparator/speedup-poc-dd-4-limited.bpl [2019-01-18 14:19:27,579 INFO L111 BoogieParser]: Parsing: '/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/programs/heapseparator/speedup-poc-dd-4-limited.bpl' [2019-01-18 14:19:27,622 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2019-01-18 14:19:27,623 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2019-01-18 14:19:27,624 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2019-01-18 14:19:27,624 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2019-01-18 14:19:27,624 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2019-01-18 14:19:27,640 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 18.01 02:19:27" (1/1) ... [2019-01-18 14:19:27,651 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 18.01 02:19:27" (1/1) ... [2019-01-18 14:19:27,676 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2019-01-18 14:19:27,677 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2019-01-18 14:19:27,677 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2019-01-18 14:19:27,677 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2019-01-18 14:19:27,688 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 18.01 02:19:27" (1/1) ... [2019-01-18 14:19:27,688 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 18.01 02:19:27" (1/1) ... [2019-01-18 14:19:27,690 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 18.01 02:19:27" (1/1) ... [2019-01-18 14:19:27,690 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 18.01 02:19:27" (1/1) ... [2019-01-18 14:19:27,693 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 18.01 02:19:27" (1/1) ... [2019-01-18 14:19:27,697 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 18.01 02:19:27" (1/1) ... [2019-01-18 14:19:27,698 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 18.01 02:19:27" (1/1) ... [2019-01-18 14:19:27,699 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2019-01-18 14:19:27,700 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2019-01-18 14:19:27,700 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2019-01-18 14:19:27,700 INFO L276 PluginConnector]: RCFGBuilder initialized [2019-01-18 14:19:27,701 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 18.01 02:19:27" (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-18 14:19:27,761 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2019-01-18 14:19:27,762 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2019-01-18 14:19:28,316 INFO L281 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2019-01-18 14:19:28,316 INFO L286 CfgBuilder]: Removed 11 assue(true) statements. [2019-01-18 14:19:28,317 INFO L202 PluginConnector]: Adding new model speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 18.01 02:19:28 BoogieIcfgContainer [2019-01-18 14:19:28,317 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2019-01-18 14:19:28,318 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2019-01-18 14:19:28,318 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2019-01-18 14:19:28,322 INFO L276 PluginConnector]: TraceAbstraction initialized [2019-01-18 14:19:28,322 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 18.01 02:19:27" (1/2) ... [2019-01-18 14:19:28,324 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@1262993 and model type speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 18.01 02:19:28, skipping insertion in model container [2019-01-18 14:19:28,324 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 18.01 02:19:28" (2/2) ... [2019-01-18 14:19:28,326 INFO L112 eAbstractionObserver]: Analyzing ICFG speedup-poc-dd-4-limited.bpl [2019-01-18 14:19:28,336 INFO L156 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2019-01-18 14:19:28,344 INFO L168 ceAbstractionStarter]: Appying trace abstraction to program that has 4 error locations. [2019-01-18 14:19:28,361 INFO L257 AbstractCegarLoop]: Starting to check reachability of 4 error locations. [2019-01-18 14:19:28,394 INFO L382 AbstractCegarLoop]: Interprodecural is true [2019-01-18 14:19:28,394 INFO L383 AbstractCegarLoop]: Hoare is true [2019-01-18 14:19:28,394 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2019-01-18 14:19:28,395 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2019-01-18 14:19:28,395 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2019-01-18 14:19:28,395 INFO L387 AbstractCegarLoop]: Difference is false [2019-01-18 14:19:28,395 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2019-01-18 14:19:28,395 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2019-01-18 14:19:28,410 INFO L276 IsEmpty]: Start isEmpty. Operand 11 states. [2019-01-18 14:19:28,417 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 3 [2019-01-18 14:19:28,417 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:19:28,418 INFO L402 BasicCegarLoop]: trace histogram [1, 1] [2019-01-18 14:19:28,421 INFO L423 AbstractCegarLoop]: === Iteration 1 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:19:28,426 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:19:28,427 INFO L82 PathProgramCache]: Analyzing trace with hash 980, now seen corresponding path program 1 times [2019-01-18 14:19:28,429 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:19:28,484 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:19:28,484 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:19:28,485 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:19:28,485 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:19:28,535 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:28,646 INFO L273 TraceCheckUtils]: 0: Hoare triple {14#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {16#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-18 14:19:28,650 INFO L273 TraceCheckUtils]: 1: Hoare triple {16#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {15#false} is VALID [2019-01-18 14:19:28,653 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-18 14:19:28,654 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-01-18 14:19:28,655 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [1] imperfect sequences [] total 1 [2019-01-18 14:19:28,655 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-18 14:19:28,660 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 2 [2019-01-18 14:19:28,662 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:19:28,664 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2019-01-18 14:19:28,676 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-18 14:19:28,676 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2019-01-18 14:19:28,685 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2019-01-18 14:19:28,686 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-18 14:19:28,689 INFO L87 Difference]: Start difference. First operand 11 states. Second operand 3 states. [2019-01-18 14:19:29,013 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:29,014 INFO L93 Difference]: Finished difference Result 21 states and 27 transitions. [2019-01-18 14:19:29,014 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-18 14:19:29,014 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 2 [2019-01-18 14:19:29,015 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:19:29,016 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-18 14:19:29,019 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 27 transitions. [2019-01-18 14:19:29,020 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-18 14:19:29,023 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 27 transitions. [2019-01-18 14:19:29,023 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 27 transitions. [2019-01-18 14:19:29,237 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-18 14:19:29,247 INFO L225 Difference]: With dead ends: 21 [2019-01-18 14:19:29,247 INFO L226 Difference]: Without dead ends: 16 [2019-01-18 14:19:29,251 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-18 14:19:29,265 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 16 states. [2019-01-18 14:19:29,284 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 16 to 10. [2019-01-18 14:19:29,284 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:19:29,284 INFO L82 GeneralOperation]: Start isEquivalent. First operand 16 states. Second operand 10 states. [2019-01-18 14:19:29,285 INFO L74 IsIncluded]: Start isIncluded. First operand 16 states. Second operand 10 states. [2019-01-18 14:19:29,285 INFO L87 Difference]: Start difference. First operand 16 states. Second operand 10 states. [2019-01-18 14:19:29,288 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:29,288 INFO L93 Difference]: Finished difference Result 16 states and 22 transitions. [2019-01-18 14:19:29,289 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 22 transitions. [2019-01-18 14:19:29,289 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:19:29,289 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:19:29,290 INFO L74 IsIncluded]: Start isIncluded. First operand 10 states. Second operand 16 states. [2019-01-18 14:19:29,290 INFO L87 Difference]: Start difference. First operand 10 states. Second operand 16 states. [2019-01-18 14:19:29,293 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:29,293 INFO L93 Difference]: Finished difference Result 16 states and 22 transitions. [2019-01-18 14:19:29,293 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 22 transitions. [2019-01-18 14:19:29,293 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:19:29,294 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:19:29,294 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:19:29,294 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:19:29,294 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:19:29,296 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 17 transitions. [2019-01-18 14:19:29,298 INFO L78 Accepts]: Start accepts. Automaton has 10 states and 17 transitions. Word has length 2 [2019-01-18 14:19:29,298 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:19:29,298 INFO L480 AbstractCegarLoop]: Abstraction has 10 states and 17 transitions. [2019-01-18 14:19:29,298 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2019-01-18 14:19:29,299 INFO L276 IsEmpty]: Start isEmpty. Operand 10 states and 17 transitions. [2019-01-18 14:19:29,299 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-18 14:19:29,299 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:19:29,299 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-18 14:19:29,300 INFO L423 AbstractCegarLoop]: === Iteration 2 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:19:29,300 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:19:29,300 INFO L82 PathProgramCache]: Analyzing trace with hash 30306, now seen corresponding path program 1 times [2019-01-18 14:19:29,300 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:19:29,301 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:19:29,301 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:19:29,302 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:19:29,302 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:19:29,314 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:29,466 INFO L273 TraceCheckUtils]: 0: Hoare triple {86#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {88#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:19:29,480 INFO L273 TraceCheckUtils]: 1: Hoare triple {88#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {89#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-18 14:19:29,489 INFO L273 TraceCheckUtils]: 2: Hoare triple {89#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {87#false} is VALID [2019-01-18 14:19:29,490 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-18 14:19:29,490 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:19:29,490 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:19:29,491 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-01-18 14:19:29,493 INFO L207 CegarAbsIntRunner]: [0], [16], [19] [2019-01-18 14:19:29,529 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:19:29,530 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:19:29,664 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:19:29,665 INFO L272 AbstractInterpreter]: Visited 3 different actions 3 times. Never merged. Never widened. Performed 50 root evaluator evaluations with a maximum evaluation depth of 3. Performed 50 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-18 14:19:29,673 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:19:29,675 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:19:29,675 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:19:29,676 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-18 14:19:29,694 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:19:29,694 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:19:29,731 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:29,748 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:29,752 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:19:29,953 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:19:29,968 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:29,971 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:19:30,002 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:30,003 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:30,005 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:19:30,093 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:30,095 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:30,097 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:30,102 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:19:30,115 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:19:30,240 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:30,362 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:30,438 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:30,507 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-18 14:19:30,507 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-18 14:19:30,523 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:19:30,524 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_22|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_22| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:19:30,524 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:19:30,869 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:30,870 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:30,871 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:30,873 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:30,880 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:30,885 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:30,887 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:30,889 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-18 14:19:30,911 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:19:31,005 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-18 14:19:31,005 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-18 14:19:33,027 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:19:33,027 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_23|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_23| ULTIMATE.start_main_p4))) (and (= .cse0 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_23| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_23| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_23| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_23| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:19:33,027 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:19:33,069 INFO L273 TraceCheckUtils]: 0: Hoare triple {86#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {93#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:19:33,071 INFO L273 TraceCheckUtils]: 1: Hoare triple {93#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {97#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-01-18 14:19:33,073 INFO L273 TraceCheckUtils]: 2: Hoare triple {97#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} assume !(#memory_int[main_p1] >= 0); {87#false} is VALID [2019-01-18 14:19:33,074 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-18 14:19:33,074 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:19:33,125 INFO L273 TraceCheckUtils]: 2: Hoare triple {101#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {87#false} is VALID [2019-01-18 14:19:33,127 INFO L273 TraceCheckUtils]: 1: Hoare triple {105#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {101#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:19:33,129 INFO L273 TraceCheckUtils]: 0: Hoare triple {86#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {105#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:19:33,129 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-18 14:19:33,149 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:19:33,150 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-18 14:19:33,150 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:19:33,151 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-18 14:19:33,151 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:19:33,152 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-18 14:19:33,173 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-18 14:19:33,174 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-18 14:19:33,174 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-18 14:19:33,174 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-18 14:19:33,174 INFO L87 Difference]: Start difference. First operand 10 states and 17 transitions. Second operand 6 states. [2019-01-18 14:19:33,822 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:33,822 INFO L93 Difference]: Finished difference Result 31 states and 44 transitions. [2019-01-18 14:19:33,822 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-18 14:19:33,823 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-18 14:19:33,823 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:19:33,823 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-18 14:19:33,825 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 44 transitions. [2019-01-18 14:19:33,825 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-18 14:19:33,827 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 44 transitions. [2019-01-18 14:19:33,827 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 44 transitions. [2019-01-18 14:19:33,936 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:19:33,939 INFO L225 Difference]: With dead ends: 31 [2019-01-18 14:19:33,939 INFO L226 Difference]: Without dead ends: 28 [2019-01-18 14:19:33,940 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 7 GetRequests, 0 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-18 14:19:33,940 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 28 states. [2019-01-18 14:19:33,954 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 28 to 13. [2019-01-18 14:19:33,955 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:19:33,955 INFO L82 GeneralOperation]: Start isEquivalent. First operand 28 states. Second operand 13 states. [2019-01-18 14:19:33,955 INFO L74 IsIncluded]: Start isIncluded. First operand 28 states. Second operand 13 states. [2019-01-18 14:19:33,955 INFO L87 Difference]: Start difference. First operand 28 states. Second operand 13 states. [2019-01-18 14:19:33,959 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:33,959 INFO L93 Difference]: Finished difference Result 28 states and 40 transitions. [2019-01-18 14:19:33,959 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 40 transitions. [2019-01-18 14:19:33,960 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:19:33,960 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:19:33,960 INFO L74 IsIncluded]: Start isIncluded. First operand 13 states. Second operand 28 states. [2019-01-18 14:19:33,960 INFO L87 Difference]: Start difference. First operand 13 states. Second operand 28 states. [2019-01-18 14:19:33,963 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:33,963 INFO L93 Difference]: Finished difference Result 28 states and 40 transitions. [2019-01-18 14:19:33,963 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 40 transitions. [2019-01-18 14:19:33,964 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:19:33,964 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:19:33,964 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:19:33,964 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:19:33,964 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2019-01-18 14:19:33,967 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 25 transitions. [2019-01-18 14:19:33,967 INFO L78 Accepts]: Start accepts. Automaton has 13 states and 25 transitions. Word has length 3 [2019-01-18 14:19:33,967 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:19:33,967 INFO L480 AbstractCegarLoop]: Abstraction has 13 states and 25 transitions. [2019-01-18 14:19:33,967 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-18 14:19:33,968 INFO L276 IsEmpty]: Start isEmpty. Operand 13 states and 25 transitions. [2019-01-18 14:19:33,968 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-18 14:19:33,968 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:19:33,968 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-18 14:19:33,969 INFO L423 AbstractCegarLoop]: === Iteration 3 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:19:33,969 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:19:33,969 INFO L82 PathProgramCache]: Analyzing trace with hash 30432, now seen corresponding path program 1 times [2019-01-18 14:19:33,969 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:19:33,970 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:19:33,970 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:19:33,970 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:19:33,970 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:19:33,979 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:34,019 INFO L273 TraceCheckUtils]: 0: Hoare triple {217#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {219#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:19:34,020 INFO L273 TraceCheckUtils]: 1: Hoare triple {219#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {219#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:19:34,021 INFO L273 TraceCheckUtils]: 2: Hoare triple {219#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {218#false} is VALID [2019-01-18 14:19:34,021 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-18 14:19:34,021 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-01-18 14:19:34,021 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [1] imperfect sequences [] total 1 [2019-01-18 14:19:34,022 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-18 14:19:34,022 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 3 [2019-01-18 14:19:34,022 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:19:34,022 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2019-01-18 14:19:34,030 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-18 14:19:34,030 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2019-01-18 14:19:34,030 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2019-01-18 14:19:34,030 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-18 14:19:34,031 INFO L87 Difference]: Start difference. First operand 13 states and 25 transitions. Second operand 3 states. [2019-01-18 14:19:34,124 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:34,124 INFO L93 Difference]: Finished difference Result 15 states and 25 transitions. [2019-01-18 14:19:34,124 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-18 14:19:34,124 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 3 [2019-01-18 14:19:34,125 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:19:34,125 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-18 14:19:34,126 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-01-18 14:19:34,126 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-18 14:19:34,127 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-01-18 14:19:34,127 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 20 transitions. [2019-01-18 14:19:34,148 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 20 edges. 20 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:19:34,150 INFO L225 Difference]: With dead ends: 15 [2019-01-18 14:19:34,150 INFO L226 Difference]: Without dead ends: 14 [2019-01-18 14:19:34,151 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-18 14:19:34,151 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 14 states. [2019-01-18 14:19:34,166 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 14 to 13. [2019-01-18 14:19:34,166 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:19:34,166 INFO L82 GeneralOperation]: Start isEquivalent. First operand 14 states. Second operand 13 states. [2019-01-18 14:19:34,166 INFO L74 IsIncluded]: Start isIncluded. First operand 14 states. Second operand 13 states. [2019-01-18 14:19:34,167 INFO L87 Difference]: Start difference. First operand 14 states. Second operand 13 states. [2019-01-18 14:19:34,169 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:34,169 INFO L93 Difference]: Finished difference Result 14 states and 24 transitions. [2019-01-18 14:19:34,169 INFO L276 IsEmpty]: Start isEmpty. Operand 14 states and 24 transitions. [2019-01-18 14:19:34,170 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:19:34,170 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:19:34,170 INFO L74 IsIncluded]: Start isIncluded. First operand 13 states. Second operand 14 states. [2019-01-18 14:19:34,170 INFO L87 Difference]: Start difference. First operand 13 states. Second operand 14 states. [2019-01-18 14:19:34,172 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:34,172 INFO L93 Difference]: Finished difference Result 14 states and 24 transitions. [2019-01-18 14:19:34,172 INFO L276 IsEmpty]: Start isEmpty. Operand 14 states and 24 transitions. [2019-01-18 14:19:34,173 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:19:34,173 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:19:34,173 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:19:34,173 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:19:34,173 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2019-01-18 14:19:34,174 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 24 transitions. [2019-01-18 14:19:34,175 INFO L78 Accepts]: Start accepts. Automaton has 13 states and 24 transitions. Word has length 3 [2019-01-18 14:19:34,175 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:19:34,175 INFO L480 AbstractCegarLoop]: Abstraction has 13 states and 24 transitions. [2019-01-18 14:19:34,175 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2019-01-18 14:19:34,175 INFO L276 IsEmpty]: Start isEmpty. Operand 13 states and 24 transitions. [2019-01-18 14:19:34,176 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-18 14:19:34,176 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:19:34,176 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-18 14:19:34,176 INFO L423 AbstractCegarLoop]: === Iteration 4 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:19:34,176 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:19:34,177 INFO L82 PathProgramCache]: Analyzing trace with hash 29996, now seen corresponding path program 1 times [2019-01-18 14:19:34,177 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:19:34,177 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:19:34,178 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:19:34,178 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:19:34,178 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:19:34,187 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:34,252 INFO L273 TraceCheckUtils]: 0: Hoare triple {284#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {286#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-18 14:19:34,254 INFO L273 TraceCheckUtils]: 1: Hoare triple {286#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {287#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:19:34,255 INFO L273 TraceCheckUtils]: 2: Hoare triple {287#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {285#false} is VALID [2019-01-18 14:19:34,255 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-18 14:19:34,255 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:19:34,255 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:19:34,255 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-01-18 14:19:34,256 INFO L207 CegarAbsIntRunner]: [0], [6], [19] [2019-01-18 14:19:34,257 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:19:34,258 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:19:34,277 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:19:34,277 INFO L272 AbstractInterpreter]: Visited 3 different actions 3 times. Never merged. Never widened. Performed 50 root evaluator evaluations with a maximum evaluation depth of 3. Performed 50 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-18 14:19:34,278 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:19:34,278 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:19:34,278 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:19:34,278 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-18 14:19:34,286 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:19:34,287 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:19:34,294 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:34,297 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:34,298 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:19:34,333 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:19:34,356 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:34,358 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:19:34,385 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:34,388 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:34,389 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:19:34,417 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:34,419 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:34,421 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:34,425 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:19:34,428 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:19:34,455 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:34,466 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:34,477 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:34,506 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-18 14:19:34,506 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 4 variables, input treesize:25, output treesize:30 [2019-01-18 14:19:34,513 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:19:34,513 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_25|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_25| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:19:34,513 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:19:34,571 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:34,573 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:34,574 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:34,576 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:34,577 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:34,579 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:34,580 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:34,583 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-18 14:19:34,591 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:19:34,629 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-18 14:19:34,629 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-18 14:19:34,638 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:19:34,638 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_26|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_26| ULTIMATE.start_main_p1))) (and (= |#memory_int| (store |v_#memory_int_26| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 0 .cse0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_26| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_26| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |v_#memory_int_26| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:19:34,638 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:19:34,670 INFO L273 TraceCheckUtils]: 0: Hoare triple {284#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {291#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:19:34,673 INFO L273 TraceCheckUtils]: 1: Hoare triple {291#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {295#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:19:34,675 INFO L273 TraceCheckUtils]: 2: Hoare triple {295#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {285#false} is VALID [2019-01-18 14:19:34,675 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-18 14:19:34,675 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:19:34,696 INFO L273 TraceCheckUtils]: 2: Hoare triple {299#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {285#false} is VALID [2019-01-18 14:19:34,697 INFO L273 TraceCheckUtils]: 1: Hoare triple {303#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {299#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:19:34,701 INFO L273 TraceCheckUtils]: 0: Hoare triple {284#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {303#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} is VALID [2019-01-18 14:19:34,701 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-18 14:19:34,720 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-01-18 14:19:34,720 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 6 [2019-01-18 14:19:34,720 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-18 14:19:34,721 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 3 [2019-01-18 14:19:34,721 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:19:34,721 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-18 14:19:34,727 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-18 14:19:34,727 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-18 14:19:34,727 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-18 14:19:34,727 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-18 14:19:34,728 INFO L87 Difference]: Start difference. First operand 13 states and 24 transitions. Second operand 4 states. [2019-01-18 14:19:34,839 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:34,840 INFO L93 Difference]: Finished difference Result 18 states and 41 transitions. [2019-01-18 14:19:34,840 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2019-01-18 14:19:34,840 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 3 [2019-01-18 14:19:34,841 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:19:34,841 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-18 14:19:34,842 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 24 transitions. [2019-01-18 14:19:34,842 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-18 14:19:34,843 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 24 transitions. [2019-01-18 14:19:34,843 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 24 transitions. [2019-01-18 14:19:34,896 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-18 14:19:34,897 INFO L225 Difference]: With dead ends: 18 [2019-01-18 14:19:34,897 INFO L226 Difference]: Without dead ends: 17 [2019-01-18 14:19:34,898 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 6 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 9 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-18 14:19:34,898 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 17 states. [2019-01-18 14:19:34,958 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 17 to 16. [2019-01-18 14:19:34,959 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:19:34,959 INFO L82 GeneralOperation]: Start isEquivalent. First operand 17 states. Second operand 16 states. [2019-01-18 14:19:34,959 INFO L74 IsIncluded]: Start isIncluded. First operand 17 states. Second operand 16 states. [2019-01-18 14:19:34,959 INFO L87 Difference]: Start difference. First operand 17 states. Second operand 16 states. [2019-01-18 14:19:34,961 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:34,961 INFO L93 Difference]: Finished difference Result 17 states and 40 transitions. [2019-01-18 14:19:34,961 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 40 transitions. [2019-01-18 14:19:34,962 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:19:34,962 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:19:34,962 INFO L74 IsIncluded]: Start isIncluded. First operand 16 states. Second operand 17 states. [2019-01-18 14:19:34,962 INFO L87 Difference]: Start difference. First operand 16 states. Second operand 17 states. [2019-01-18 14:19:34,964 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:34,964 INFO L93 Difference]: Finished difference Result 17 states and 40 transitions. [2019-01-18 14:19:34,964 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 40 transitions. [2019-01-18 14:19:34,964 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:19:34,965 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:19:34,965 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:19:34,965 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:19:34,965 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 16 states. [2019-01-18 14:19:34,967 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 40 transitions. [2019-01-18 14:19:34,967 INFO L78 Accepts]: Start accepts. Automaton has 16 states and 40 transitions. Word has length 3 [2019-01-18 14:19:34,967 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:19:34,967 INFO L480 AbstractCegarLoop]: Abstraction has 16 states and 40 transitions. [2019-01-18 14:19:34,967 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-18 14:19:34,967 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 40 transitions. [2019-01-18 14:19:34,968 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-18 14:19:34,968 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:19:34,968 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-18 14:19:34,968 INFO L423 AbstractCegarLoop]: === Iteration 5 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:19:34,969 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:19:34,969 INFO L82 PathProgramCache]: Analyzing trace with hash 30120, now seen corresponding path program 1 times [2019-01-18 14:19:34,969 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:19:34,970 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:19:34,970 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:19:34,970 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:19:34,970 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:19:34,978 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:35,062 INFO L273 TraceCheckUtils]: 0: Hoare triple {386#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {388#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-18 14:19:35,063 INFO L273 TraceCheckUtils]: 1: Hoare triple {388#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {389#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-18 14:19:35,064 INFO L273 TraceCheckUtils]: 2: Hoare triple {389#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {387#false} is VALID [2019-01-18 14:19:35,064 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-18 14:19:35,064 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:19:35,064 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:19:35,065 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-01-18 14:19:35,065 INFO L207 CegarAbsIntRunner]: [0], [10], [19] [2019-01-18 14:19:35,066 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:19:35,066 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:19:35,088 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:19:35,088 INFO L272 AbstractInterpreter]: Visited 3 different actions 3 times. Never merged. Never widened. Performed 50 root evaluator evaluations with a maximum evaluation depth of 3. Performed 50 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-18 14:19:35,088 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:19:35,088 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:19:35,088 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:19:35,089 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-18 14:19:35,098 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:19:35,098 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:19:35,107 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:35,110 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:35,111 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:19:35,143 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:19:35,156 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:35,157 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:19:35,234 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:35,236 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:35,237 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:19:35,256 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:35,257 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:35,258 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:35,259 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:19:35,262 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:19:35,282 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:35,291 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:35,301 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:35,334 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-18 14:19:35,335 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-18 14:19:35,339 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:19:35,340 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_28|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_28| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:19:35,340 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:19:35,409 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:35,410 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:35,412 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:35,413 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:35,414 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:35,415 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:35,417 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:35,418 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-18 14:19:35,421 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:19:35,489 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-18 14:19:35,490 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-18 14:19:37,540 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:19:37,541 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_29|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_29| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_29| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_29| ULTIMATE.start_main_p4) 0) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (store |v_#memory_int_29| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_29| ULTIMATE.start_main_p3) 0))) [2019-01-18 14:19:37,541 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:19:37,584 INFO L273 TraceCheckUtils]: 0: Hoare triple {386#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {393#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:19:37,587 INFO L273 TraceCheckUtils]: 1: Hoare triple {393#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {397#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:19:37,588 INFO L273 TraceCheckUtils]: 2: Hoare triple {397#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {387#false} is VALID [2019-01-18 14:19:37,589 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-18 14:19:37,589 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:19:37,627 INFO L273 TraceCheckUtils]: 2: Hoare triple {401#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {387#false} is VALID [2019-01-18 14:19:37,628 INFO L273 TraceCheckUtils]: 1: Hoare triple {405#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {401#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:19:37,630 INFO L273 TraceCheckUtils]: 0: Hoare triple {386#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {405#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:19:37,630 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-18 14:19:37,649 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:19:37,649 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-18 14:19:37,649 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:19:37,649 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-18 14:19:37,650 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:19:37,650 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-18 14:19:37,658 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-18 14:19:37,659 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-18 14:19:37,659 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-18 14:19:37,659 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-18 14:19:37,659 INFO L87 Difference]: Start difference. First operand 16 states and 40 transitions. Second operand 6 states. [2019-01-18 14:19:38,107 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:38,107 INFO L93 Difference]: Finished difference Result 32 states and 62 transitions. [2019-01-18 14:19:38,107 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-18 14:19:38,107 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-18 14:19:38,108 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:19:38,108 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-18 14:19:38,109 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 41 transitions. [2019-01-18 14:19:38,109 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-18 14:19:38,110 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 41 transitions. [2019-01-18 14:19:38,110 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 41 transitions. [2019-01-18 14:19:38,226 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 41 edges. 41 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:19:38,229 INFO L225 Difference]: With dead ends: 32 [2019-01-18 14:19:38,229 INFO L226 Difference]: Without dead ends: 31 [2019-01-18 14:19:38,229 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 7 GetRequests, 0 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-18 14:19:38,230 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 31 states. [2019-01-18 14:19:38,274 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 31 to 18. [2019-01-18 14:19:38,274 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:19:38,274 INFO L82 GeneralOperation]: Start isEquivalent. First operand 31 states. Second operand 18 states. [2019-01-18 14:19:38,275 INFO L74 IsIncluded]: Start isIncluded. First operand 31 states. Second operand 18 states. [2019-01-18 14:19:38,275 INFO L87 Difference]: Start difference. First operand 31 states. Second operand 18 states. [2019-01-18 14:19:38,278 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:38,278 INFO L93 Difference]: Finished difference Result 31 states and 60 transitions. [2019-01-18 14:19:38,278 INFO L276 IsEmpty]: Start isEmpty. Operand 31 states and 60 transitions. [2019-01-18 14:19:38,279 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:19:38,279 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:19:38,279 INFO L74 IsIncluded]: Start isIncluded. First operand 18 states. Second operand 31 states. [2019-01-18 14:19:38,279 INFO L87 Difference]: Start difference. First operand 18 states. Second operand 31 states. [2019-01-18 14:19:38,281 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:38,282 INFO L93 Difference]: Finished difference Result 31 states and 60 transitions. [2019-01-18 14:19:38,282 INFO L276 IsEmpty]: Start isEmpty. Operand 31 states and 60 transitions. [2019-01-18 14:19:38,282 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:19:38,282 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:19:38,283 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:19:38,283 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:19:38,283 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 18 states. [2019-01-18 14:19:38,284 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 50 transitions. [2019-01-18 14:19:38,284 INFO L78 Accepts]: Start accepts. Automaton has 18 states and 50 transitions. Word has length 3 [2019-01-18 14:19:38,285 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:19:38,285 INFO L480 AbstractCegarLoop]: Abstraction has 18 states and 50 transitions. [2019-01-18 14:19:38,285 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-18 14:19:38,285 INFO L276 IsEmpty]: Start isEmpty. Operand 18 states and 50 transitions. [2019-01-18 14:19:38,285 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-18 14:19:38,286 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:19:38,286 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-18 14:19:38,286 INFO L423 AbstractCegarLoop]: === Iteration 6 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:19:38,286 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:19:38,286 INFO L82 PathProgramCache]: Analyzing trace with hash 939538, now seen corresponding path program 1 times [2019-01-18 14:19:38,287 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:19:38,287 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:19:38,287 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:19:38,288 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:19:38,288 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:19:38,297 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:38,400 INFO L273 TraceCheckUtils]: 0: Hoare triple {538#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {540#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:19:38,401 INFO L273 TraceCheckUtils]: 1: Hoare triple {540#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {541#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:19:38,402 INFO L273 TraceCheckUtils]: 2: Hoare triple {541#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {541#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:19:38,402 INFO L273 TraceCheckUtils]: 3: Hoare triple {541#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {539#false} is VALID [2019-01-18 14:19:38,403 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-18 14:19:38,403 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:19:38,403 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:19:38,404 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-18 14:19:38,404 INFO L207 CegarAbsIntRunner]: [0], [16], [20], [21] [2019-01-18 14:19:38,406 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:19:38,406 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:19:38,428 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:19:38,428 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-18 14:19:38,428 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:19:38,428 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:19:38,428 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:19:38,429 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-18 14:19:38,437 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:19:38,437 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:19:38,441 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:38,444 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:38,445 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:19:38,467 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:19:38,481 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-18 14:19:38,507 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:38,508 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-01-18 14:19:38,560 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:38,561 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:38,563 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-01-18 14:19:38,566 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:19:38,580 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:38,590 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:38,599 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:38,639 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-18 14:19:38,640 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:22, output treesize:27 [2019-01-18 14:19:38,644 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:19:38,645 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_31|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_31| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:19:38,645 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:19:38,743 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:38,745 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:38,748 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:38,749 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:38,750 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-18 14:19:38,752 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:19:38,773 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-18 14:19:38,774 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:32, output treesize:22 [2019-01-18 14:19:38,781 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:19:38,782 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_32|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_32| ULTIMATE.start_main_p4))) (and (= (store |v_#memory_int_32| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_32| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_32| ULTIMATE.start_main_p3) 0) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:19:38,782 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:19:38,934 INFO L273 TraceCheckUtils]: 0: Hoare triple {538#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {545#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:19:38,936 INFO L273 TraceCheckUtils]: 1: Hoare triple {545#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {549#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-18 14:19:38,937 INFO L273 TraceCheckUtils]: 2: Hoare triple {549#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume #memory_int[main_p1] >= 0; {549#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-18 14:19:38,938 INFO L273 TraceCheckUtils]: 3: Hoare triple {549#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume !(#memory_int[main_p2] <= 0); {539#false} is VALID [2019-01-18 14:19:38,939 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-18 14:19:38,939 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:19:38,969 INFO L273 TraceCheckUtils]: 3: Hoare triple {556#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {539#false} is VALID [2019-01-18 14:19:38,970 INFO L273 TraceCheckUtils]: 2: Hoare triple {556#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {556#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:19:38,971 INFO L273 TraceCheckUtils]: 1: Hoare triple {563#(<= (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {556#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:19:38,973 INFO L273 TraceCheckUtils]: 0: Hoare triple {538#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {563#(<= (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:19:38,973 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-18 14:19:38,993 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-01-18 14:19:38,993 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 6 [2019-01-18 14:19:38,993 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-18 14:19:38,993 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-01-18 14:19:38,994 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:19:38,994 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-18 14:19:39,000 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-18 14:19:39,000 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-18 14:19:39,001 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-18 14:19:39,001 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=26, Invalid=30, Unknown=0, NotChecked=0, Total=56 [2019-01-18 14:19:39,001 INFO L87 Difference]: Start difference. First operand 18 states and 50 transitions. Second operand 4 states. [2019-01-18 14:19:39,099 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:39,099 INFO L93 Difference]: Finished difference Result 22 states and 58 transitions. [2019-01-18 14:19:39,100 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-18 14:19:39,100 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-01-18 14:19:39,100 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:19:39,100 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-18 14:19:39,101 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-01-18 14:19:39,102 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-18 14:19:39,102 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-01-18 14:19:39,103 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 20 transitions. [2019-01-18 14:19:39,121 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 20 edges. 20 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:19:39,122 INFO L225 Difference]: With dead ends: 22 [2019-01-18 14:19:39,122 INFO L226 Difference]: Without dead ends: 21 [2019-01-18 14:19:39,123 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-18 14:19:39,123 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 21 states. [2019-01-18 14:19:39,162 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 21 to 20. [2019-01-18 14:19:39,162 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:19:39,162 INFO L82 GeneralOperation]: Start isEquivalent. First operand 21 states. Second operand 20 states. [2019-01-18 14:19:39,162 INFO L74 IsIncluded]: Start isIncluded. First operand 21 states. Second operand 20 states. [2019-01-18 14:19:39,162 INFO L87 Difference]: Start difference. First operand 21 states. Second operand 20 states. [2019-01-18 14:19:39,164 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:39,164 INFO L93 Difference]: Finished difference Result 21 states and 57 transitions. [2019-01-18 14:19:39,164 INFO L276 IsEmpty]: Start isEmpty. Operand 21 states and 57 transitions. [2019-01-18 14:19:39,165 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:19:39,165 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:19:39,165 INFO L74 IsIncluded]: Start isIncluded. First operand 20 states. Second operand 21 states. [2019-01-18 14:19:39,165 INFO L87 Difference]: Start difference. First operand 20 states. Second operand 21 states. [2019-01-18 14:19:39,167 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:39,167 INFO L93 Difference]: Finished difference Result 21 states and 57 transitions. [2019-01-18 14:19:39,167 INFO L276 IsEmpty]: Start isEmpty. Operand 21 states and 57 transitions. [2019-01-18 14:19:39,168 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:19:39,168 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:19:39,168 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:19:39,168 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:19:39,168 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 20 states. [2019-01-18 14:19:39,169 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 57 transitions. [2019-01-18 14:19:39,170 INFO L78 Accepts]: Start accepts. Automaton has 20 states and 57 transitions. Word has length 4 [2019-01-18 14:19:39,170 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:19:39,170 INFO L480 AbstractCegarLoop]: Abstraction has 20 states and 57 transitions. [2019-01-18 14:19:39,170 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-18 14:19:39,170 INFO L276 IsEmpty]: Start isEmpty. Operand 20 states and 57 transitions. [2019-01-18 14:19:39,170 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-18 14:19:39,170 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:19:39,171 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-18 14:19:39,171 INFO L423 AbstractCegarLoop]: === Iteration 7 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:19:39,171 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:19:39,171 INFO L82 PathProgramCache]: Analyzing trace with hash 939226, now seen corresponding path program 1 times [2019-01-18 14:19:39,171 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:19:39,172 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:19:39,172 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:19:39,173 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:19:39,173 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:19:39,184 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:39,322 INFO L273 TraceCheckUtils]: 0: Hoare triple {668#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {670#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:19:39,323 INFO L273 TraceCheckUtils]: 1: Hoare triple {670#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {671#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-18 14:19:39,324 INFO L273 TraceCheckUtils]: 2: Hoare triple {671#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {672#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-18 14:19:39,325 INFO L273 TraceCheckUtils]: 3: Hoare triple {672#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {669#false} is VALID [2019-01-18 14:19:39,326 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-18 14:19:39,326 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:19:39,326 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:19:39,326 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-18 14:19:39,327 INFO L207 CegarAbsIntRunner]: [0], [10], [16], [19] [2019-01-18 14:19:39,329 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:19:39,329 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:19:39,353 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:19:39,353 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:19:39,353 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:19:39,354 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:19:39,354 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:19:39,354 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-18 14:19:39,364 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:19:39,364 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:19:39,369 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:39,396 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:39,397 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:19:39,456 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:19:39,474 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:39,475 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:19:39,484 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:39,486 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:39,487 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:19:39,504 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:39,505 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:39,506 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:39,508 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:19:39,513 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:19:39,532 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:39,542 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:39,551 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:39,567 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-18 14:19:39,568 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-18 14:19:39,573 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:19:39,574 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_34|, ULTIMATE.start_main_p3]. (and (= (store (store (store (store |v_#memory_int_34| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:19:39,574 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:19:39,726 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:39,727 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:39,728 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:39,729 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:39,730 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:39,731 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:39,732 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:39,734 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-18 14:19:39,736 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:19:39,823 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-18 14:19:39,823 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-18 14:19:39,835 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:19:39,836 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_35|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_35| ULTIMATE.start_main_p4))) (and (= 0 (select |v_#memory_int_35| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_35| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_35| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_35| ULTIMATE.start_main_p3)) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:19:39,836 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:19:39,938 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:39,940 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:39,941 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:39,942 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:39,943 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:39,945 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:39,946 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:39,946 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:19:39,948 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-18 14:19:39,972 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:19:40,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-18 14:19:40,008 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:30 [2019-01-18 14:19:42,014 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:19:42,014 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_36|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_36| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_36| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_36| ULTIMATE.start_main_p1) 0) (= 0 (+ (select |v_#memory_int_36| ULTIMATE.start_main_p4) 1)) (= (store |v_#memory_int_36| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:19:42,014 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:19:42,072 INFO L273 TraceCheckUtils]: 0: Hoare triple {668#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {676#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:19:42,087 INFO L273 TraceCheckUtils]: 1: Hoare triple {676#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {680#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-18 14:19:42,089 INFO L273 TraceCheckUtils]: 2: Hoare triple {680#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {684#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:19:42,090 INFO L273 TraceCheckUtils]: 3: Hoare triple {684#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {669#false} is VALID [2019-01-18 14:19:42,091 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-18 14:19:42,091 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:19:42,134 INFO L273 TraceCheckUtils]: 3: Hoare triple {688#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {669#false} is VALID [2019-01-18 14:19:42,135 INFO L273 TraceCheckUtils]: 2: Hoare triple {692#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {688#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:19:42,137 INFO L273 TraceCheckUtils]: 1: Hoare triple {696#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {692#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:19:42,139 INFO L273 TraceCheckUtils]: 0: Hoare triple {668#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {696#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:19:42,139 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-18 14:19:42,158 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:19:42,159 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-18 14:19:42,159 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:19:42,159 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-18 14:19:42,159 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:19:42,159 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:19:42,177 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-18 14:19:42,177 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:19:42,177 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:19:42,177 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=43, Invalid=67, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:19:42,177 INFO L87 Difference]: Start difference. First operand 20 states and 57 transitions. Second operand 8 states. [2019-01-18 14:19:42,899 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:42,899 INFO L93 Difference]: Finished difference Result 37 states and 74 transitions. [2019-01-18 14:19:42,899 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-18 14:19:42,900 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-18 14:19:42,900 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:19:42,900 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:19:42,901 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 48 transitions. [2019-01-18 14:19:42,901 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:19:42,902 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 48 transitions. [2019-01-18 14:19:42,902 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 48 transitions. [2019-01-18 14:19:42,978 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 48 edges. 48 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:19:42,979 INFO L225 Difference]: With dead ends: 37 [2019-01-18 14:19:42,979 INFO L226 Difference]: Without dead ends: 36 [2019-01-18 14:19:42,979 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-01-18 14:19:42,979 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 36 states. [2019-01-18 14:19:43,039 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 36 to 17. [2019-01-18 14:19:43,039 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:19:43,039 INFO L82 GeneralOperation]: Start isEquivalent. First operand 36 states. Second operand 17 states. [2019-01-18 14:19:43,040 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 17 states. [2019-01-18 14:19:43,040 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 17 states. [2019-01-18 14:19:43,041 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:43,042 INFO L93 Difference]: Finished difference Result 36 states and 72 transitions. [2019-01-18 14:19:43,042 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 72 transitions. [2019-01-18 14:19:43,042 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:19:43,042 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:19:43,043 INFO L74 IsIncluded]: Start isIncluded. First operand 17 states. Second operand 36 states. [2019-01-18 14:19:43,043 INFO L87 Difference]: Start difference. First operand 17 states. Second operand 36 states. [2019-01-18 14:19:43,045 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:43,045 INFO L93 Difference]: Finished difference Result 36 states and 72 transitions. [2019-01-18 14:19:43,045 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 72 transitions. [2019-01-18 14:19:43,045 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:19:43,046 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:19:43,046 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:19:43,046 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:19:43,046 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 17 states. [2019-01-18 14:19:43,047 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 41 transitions. [2019-01-18 14:19:43,047 INFO L78 Accepts]: Start accepts. Automaton has 17 states and 41 transitions. Word has length 4 [2019-01-18 14:19:43,047 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:19:43,047 INFO L480 AbstractCegarLoop]: Abstraction has 17 states and 41 transitions. [2019-01-18 14:19:43,048 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:19:43,048 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 41 transitions. [2019-01-18 14:19:43,048 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-18 14:19:43,048 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:19:43,048 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-18 14:19:43,049 INFO L423 AbstractCegarLoop]: === Iteration 8 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:19:43,049 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:19:43,049 INFO L82 PathProgramCache]: Analyzing trace with hash 939350, now seen corresponding path program 1 times [2019-01-18 14:19:43,049 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:19:43,053 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:19:43,053 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:19:43,053 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:19:43,053 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:19:43,065 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:43,204 INFO L273 TraceCheckUtils]: 0: Hoare triple {845#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {847#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:19:43,205 INFO L273 TraceCheckUtils]: 1: Hoare triple {847#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {848#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))} is VALID [2019-01-18 14:19:43,205 INFO L273 TraceCheckUtils]: 2: Hoare triple {848#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {849#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-18 14:19:43,206 INFO L273 TraceCheckUtils]: 3: Hoare triple {849#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {846#false} is VALID [2019-01-18 14:19:43,206 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-18 14:19:43,207 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:19:43,207 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:19:43,207 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-18 14:19:43,207 INFO L207 CegarAbsIntRunner]: [0], [14], [16], [19] [2019-01-18 14:19:43,208 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:19:43,208 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:19:43,226 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:19:43,226 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:19:43,226 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:19:43,227 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:19:43,227 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:19:43,227 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 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-18 14:19:43,238 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:19:43,238 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:19:43,250 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:43,255 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:43,256 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:19:43,284 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:19:43,291 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:43,292 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:19:43,309 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:43,310 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:43,312 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:19:43,327 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:43,329 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:43,329 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:43,331 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:19:43,335 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:19:43,360 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:43,373 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:43,382 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:43,399 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-18 14:19:43,400 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-18 14:19:43,405 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:19:43,405 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_39|, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_39| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:19:43,405 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:19:43,577 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:43,579 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:43,580 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:43,582 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:43,583 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:43,585 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:43,586 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:43,588 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-18 14:19:43,591 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:19:43,623 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-18 14:19:43,624 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-18 14:19:45,635 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:19:45,635 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_40|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_40| ULTIMATE.start_main_p4))) (and (= (select |v_#memory_int_40| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_40| ULTIMATE.start_main_p2) 0) (= |#memory_int| (store |v_#memory_int_40| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= (select |v_#memory_int_40| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= .cse0 0))) [2019-01-18 14:19:45,635 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:19:45,812 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:45,814 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:45,815 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:45,817 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:45,818 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:45,820 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:45,822 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:45,823 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:45,834 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:45,836 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-18 14:19:45,840 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:19:45,975 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-18 14:19:45,976 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-18 14:19:48,007 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:19:48,008 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_41|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_41| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_41| ULTIMATE.start_main_p3 (+ .cse0 1))) (= 0 (+ (select |v_#memory_int_41| ULTIMATE.start_main_p4) 1)) (= 0 (select |v_#memory_int_41| ULTIMATE.start_main_p2)) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_41| ULTIMATE.start_main_p1) 0))) [2019-01-18 14:19:48,008 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:19:48,045 INFO L273 TraceCheckUtils]: 0: Hoare triple {845#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {853#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:19:48,047 INFO L273 TraceCheckUtils]: 1: Hoare triple {853#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {857#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:19:48,050 INFO L273 TraceCheckUtils]: 2: Hoare triple {857#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {861#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:19:48,054 INFO L273 TraceCheckUtils]: 3: Hoare triple {861#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {846#false} is VALID [2019-01-18 14:19:48,054 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-18 14:19:48,054 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:19:48,089 INFO L273 TraceCheckUtils]: 3: Hoare triple {865#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {846#false} is VALID [2019-01-18 14:19:48,090 INFO L273 TraceCheckUtils]: 2: Hoare triple {869#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {865#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:19:48,091 INFO L273 TraceCheckUtils]: 1: Hoare triple {873#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {869#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:19:48,093 INFO L273 TraceCheckUtils]: 0: Hoare triple {845#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {873#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:19:48,094 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-18 14:19:48,113 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:19:48,113 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-18 14:19:48,113 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:19:48,114 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-18 14:19:48,114 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:19:48,114 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:19:48,124 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-18 14:19:48,124 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:19:48,124 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:19:48,124 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:19:48,125 INFO L87 Difference]: Start difference. First operand 17 states and 41 transitions. Second operand 8 states. [2019-01-18 14:19:48,811 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:48,811 INFO L93 Difference]: Finished difference Result 42 states and 89 transitions. [2019-01-18 14:19:48,812 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-18 14:19:48,812 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-18 14:19:48,812 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:19:48,812 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:19:48,813 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 50 transitions. [2019-01-18 14:19:48,813 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:19:48,814 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 50 transitions. [2019-01-18 14:19:48,814 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 50 transitions. [2019-01-18 14:19:48,886 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 50 edges. 50 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:19:48,888 INFO L225 Difference]: With dead ends: 42 [2019-01-18 14:19:48,888 INFO L226 Difference]: Without dead ends: 38 [2019-01-18 14:19:48,889 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 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-18 14:19:48,889 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 38 states. [2019-01-18 14:19:48,996 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 38 to 22. [2019-01-18 14:19:48,997 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:19:48,997 INFO L82 GeneralOperation]: Start isEquivalent. First operand 38 states. Second operand 22 states. [2019-01-18 14:19:48,997 INFO L74 IsIncluded]: Start isIncluded. First operand 38 states. Second operand 22 states. [2019-01-18 14:19:48,997 INFO L87 Difference]: Start difference. First operand 38 states. Second operand 22 states. [2019-01-18 14:19:49,000 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:49,000 INFO L93 Difference]: Finished difference Result 38 states and 82 transitions. [2019-01-18 14:19:49,000 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 82 transitions. [2019-01-18 14:19:49,001 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:19:49,001 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:19:49,001 INFO L74 IsIncluded]: Start isIncluded. First operand 22 states. Second operand 38 states. [2019-01-18 14:19:49,001 INFO L87 Difference]: Start difference. First operand 22 states. Second operand 38 states. [2019-01-18 14:19:49,003 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:49,003 INFO L93 Difference]: Finished difference Result 38 states and 82 transitions. [2019-01-18 14:19:49,003 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 82 transitions. [2019-01-18 14:19:49,003 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:19:49,004 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:19:49,004 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:19:49,004 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:19:49,004 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 22 states. [2019-01-18 14:19:49,005 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 22 states to 22 states and 65 transitions. [2019-01-18 14:19:49,006 INFO L78 Accepts]: Start accepts. Automaton has 22 states and 65 transitions. Word has length 4 [2019-01-18 14:19:49,006 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:19:49,006 INFO L480 AbstractCegarLoop]: Abstraction has 22 states and 65 transitions. [2019-01-18 14:19:49,006 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:19:49,006 INFO L276 IsEmpty]: Start isEmpty. Operand 22 states and 65 transitions. [2019-01-18 14:19:49,006 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-18 14:19:49,006 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:19:49,007 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-18 14:19:49,007 INFO L423 AbstractCegarLoop]: === Iteration 9 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:19:49,007 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:19:49,007 INFO L82 PathProgramCache]: Analyzing trace with hash 929802, now seen corresponding path program 1 times [2019-01-18 14:19:49,007 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:19:49,008 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:19:49,008 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:19:49,008 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:19:49,008 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:19:49,015 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:49,314 INFO L273 TraceCheckUtils]: 0: Hoare triple {1043#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1045#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:19:49,315 INFO L273 TraceCheckUtils]: 1: Hoare triple {1045#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1046#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:19:49,316 INFO L273 TraceCheckUtils]: 2: Hoare triple {1046#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1047#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:19:49,317 INFO L273 TraceCheckUtils]: 3: Hoare triple {1047#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1044#false} is VALID [2019-01-18 14:19:49,317 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-18 14:19:49,318 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:19:49,318 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:19:49,318 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-18 14:19:49,318 INFO L207 CegarAbsIntRunner]: [0], [6], [16], [19] [2019-01-18 14:19:49,319 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:19:49,320 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:19:49,334 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:19:49,334 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:19:49,334 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:19:49,334 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:19:49,335 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:19:49,335 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-18 14:19:49,345 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:19:49,346 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:19:49,350 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:49,354 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:49,355 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:19:49,382 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:19:49,390 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:49,391 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:19:49,401 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:49,402 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:49,404 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:19:49,424 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:49,426 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:49,427 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:49,428 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:19:49,436 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:19:49,454 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:49,465 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:49,473 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:49,489 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-18 14:19:49,489 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-18 14:19:49,496 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:19:49,496 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_44|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (and (= (store (store (store (store |v_#memory_int_44| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:19:49,497 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:19:49,595 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:49,602 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:49,603 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:49,604 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:49,605 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:49,605 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:49,607 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:49,608 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-18 14:19:49,611 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:19:49,644 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-18 14:19:49,644 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-18 14:19:49,648 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:19:49,648 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_45|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_45| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_45| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_45| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_45| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_45| ULTIMATE.start_main_p4) 0) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:19:49,648 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:19:49,701 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:49,704 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:49,705 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:49,707 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:49,708 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:49,709 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:49,711 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:49,712 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:49,713 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:49,715 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-18 14:19:49,720 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:19:49,755 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-18 14:19:49,755 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-18 14:19:51,766 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:19:51,767 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_46|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_46| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= |#memory_int| (store |v_#memory_int_46| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= (select |v_#memory_int_46| ULTIMATE.start_main_p3) 0) (= 0 (select |v_#memory_int_46| ULTIMATE.start_main_p2)) (= 1 (select |v_#memory_int_46| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:19:51,767 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:19:51,797 INFO L273 TraceCheckUtils]: 0: Hoare triple {1043#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1051#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:19:51,807 INFO L273 TraceCheckUtils]: 1: Hoare triple {1051#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1055#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:19:51,810 INFO L273 TraceCheckUtils]: 2: Hoare triple {1055#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1059#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:19:51,810 INFO L273 TraceCheckUtils]: 3: Hoare triple {1059#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {1044#false} is VALID [2019-01-18 14:19:51,811 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-18 14:19:51,811 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:19:51,875 INFO L273 TraceCheckUtils]: 3: Hoare triple {1063#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1044#false} is VALID [2019-01-18 14:19:51,876 INFO L273 TraceCheckUtils]: 2: Hoare triple {1067#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1063#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:19:51,876 INFO L273 TraceCheckUtils]: 1: Hoare triple {1071#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1067#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:19:51,878 INFO L273 TraceCheckUtils]: 0: Hoare triple {1043#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1071#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:19:51,878 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-18 14:19:51,896 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:19:51,897 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-18 14:19:51,897 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:19:51,897 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-18 14:19:51,897 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:19:51,897 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:19:51,910 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-18 14:19:51,911 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:19:51,911 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:19:51,911 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:19:51,911 INFO L87 Difference]: Start difference. First operand 22 states and 65 transitions. Second operand 8 states. [2019-01-18 14:19:52,605 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:52,606 INFO L93 Difference]: Finished difference Result 51 states and 112 transitions. [2019-01-18 14:19:52,606 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-18 14:19:52,606 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-18 14:19:52,606 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:19:52,606 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:19:52,607 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 57 transitions. [2019-01-18 14:19:52,607 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:19:52,608 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 57 transitions. [2019-01-18 14:19:52,608 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 57 transitions. [2019-01-18 14:19:52,719 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 57 edges. 57 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:19:52,721 INFO L225 Difference]: With dead ends: 51 [2019-01-18 14:19:52,721 INFO L226 Difference]: Without dead ends: 48 [2019-01-18 14:19:52,722 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-01-18 14:19:52,722 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 48 states. [2019-01-18 14:19:52,817 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 48 to 28. [2019-01-18 14:19:52,817 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:19:52,817 INFO L82 GeneralOperation]: Start isEquivalent. First operand 48 states. Second operand 28 states. [2019-01-18 14:19:52,818 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand 28 states. [2019-01-18 14:19:52,818 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 28 states. [2019-01-18 14:19:52,821 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:52,821 INFO L93 Difference]: Finished difference Result 48 states and 107 transitions. [2019-01-18 14:19:52,821 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 107 transitions. [2019-01-18 14:19:52,822 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:19:52,822 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:19:52,822 INFO L74 IsIncluded]: Start isIncluded. First operand 28 states. Second operand 48 states. [2019-01-18 14:19:52,822 INFO L87 Difference]: Start difference. First operand 28 states. Second operand 48 states. [2019-01-18 14:19:52,824 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:52,825 INFO L93 Difference]: Finished difference Result 48 states and 107 transitions. [2019-01-18 14:19:52,825 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 107 transitions. [2019-01-18 14:19:52,825 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:19:52,825 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:19:52,825 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:19:52,826 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:19:52,826 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 28 states. [2019-01-18 14:19:52,827 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 28 states to 28 states and 88 transitions. [2019-01-18 14:19:52,827 INFO L78 Accepts]: Start accepts. Automaton has 28 states and 88 transitions. Word has length 4 [2019-01-18 14:19:52,828 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:19:52,828 INFO L480 AbstractCegarLoop]: Abstraction has 28 states and 88 transitions. [2019-01-18 14:19:52,828 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:19:52,828 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 88 transitions. [2019-01-18 14:19:52,828 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-18 14:19:52,828 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:19:52,828 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-18 14:19:52,829 INFO L423 AbstractCegarLoop]: === Iteration 10 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:19:52,829 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:19:52,829 INFO L82 PathProgramCache]: Analyzing trace with hash 929928, now seen corresponding path program 1 times [2019-01-18 14:19:52,829 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:19:52,830 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:19:52,830 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:19:52,830 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:19:52,830 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:19:52,836 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:52,938 INFO L273 TraceCheckUtils]: 0: Hoare triple {1282#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1284#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:19:52,939 INFO L273 TraceCheckUtils]: 1: Hoare triple {1284#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1285#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:19:52,939 INFO L273 TraceCheckUtils]: 2: Hoare triple {1285#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {1285#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:19:52,940 INFO L273 TraceCheckUtils]: 3: Hoare triple {1285#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {1283#false} is VALID [2019-01-18 14:19:52,940 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-18 14:19:52,940 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:19:52,940 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:19:52,940 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-18 14:19:52,941 INFO L207 CegarAbsIntRunner]: [0], [6], [20], [21] [2019-01-18 14:19:52,942 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:19:52,942 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:19:52,953 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:19:52,953 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-18 14:19:52,954 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:19:52,954 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:19:52,954 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:19:52,954 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-18 14:19:52,962 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:19:52,962 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:19:52,966 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:52,969 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:52,969 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:19:52,994 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:19:53,036 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:53,037 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:19:53,047 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:53,048 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:53,049 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:19:53,065 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:53,066 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:53,067 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:53,068 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:19:53,071 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:19:53,089 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:53,100 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:53,108 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:53,126 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-18 14:19:53,127 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-18 14:19:53,133 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:19:53,133 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_49|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_49| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:19:53,133 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:19:53,244 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:53,268 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:53,287 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:53,288 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:53,291 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:53,292 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:53,293 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:53,294 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-18 14:19:53,298 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:19:53,332 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-18 14:19:53,333 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-18 14:19:53,839 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:19:53,839 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_50|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_50| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_50| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_50| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (select |v_#memory_int_50| ULTIMATE.start_main_p2)) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (select |v_#memory_int_50| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:19:53,839 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:19:53,882 INFO L273 TraceCheckUtils]: 0: Hoare triple {1282#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1289#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:19:53,883 INFO L273 TraceCheckUtils]: 1: Hoare triple {1289#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1293#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-18 14:19:53,884 INFO L273 TraceCheckUtils]: 2: Hoare triple {1293#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p1] >= 0; {1293#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-18 14:19:53,885 INFO L273 TraceCheckUtils]: 3: Hoare triple {1293#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p2] <= 0); {1283#false} is VALID [2019-01-18 14:19:53,885 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-18 14:19:53,885 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:19:53,908 INFO L273 TraceCheckUtils]: 3: Hoare triple {1300#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {1283#false} is VALID [2019-01-18 14:19:53,909 INFO L273 TraceCheckUtils]: 2: Hoare triple {1300#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {1300#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:19:53,910 INFO L273 TraceCheckUtils]: 1: Hoare triple {1307#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1300#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:19:53,912 INFO L273 TraceCheckUtils]: 0: Hoare triple {1282#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1307#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:19:53,912 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-18 14:19:53,931 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:19:53,931 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-18 14:19:53,932 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:19:53,932 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-18 14:19:53,932 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:19:53,932 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-18 14:19:53,975 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-18 14:19:53,975 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-18 14:19:53,975 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-18 14:19:53,976 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-18 14:19:53,976 INFO L87 Difference]: Start difference. First operand 28 states and 88 transitions. Second operand 6 states. [2019-01-18 14:19:54,369 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:54,369 INFO L93 Difference]: Finished difference Result 36 states and 98 transitions. [2019-01-18 14:19:54,370 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-18 14:19:54,370 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-18 14:19:54,370 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:19:54,370 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-18 14:19:54,370 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 34 transitions. [2019-01-18 14:19:54,371 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-18 14:19:54,371 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 34 transitions. [2019-01-18 14:19:54,371 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 34 transitions. [2019-01-18 14:19:54,455 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 34 edges. 34 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:19:54,456 INFO L225 Difference]: With dead ends: 36 [2019-01-18 14:19:54,456 INFO L226 Difference]: Without dead ends: 35 [2019-01-18 14:19:54,456 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 3 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-01-18 14:19:54,457 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 35 states. [2019-01-18 14:19:54,576 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 35 to 29. [2019-01-18 14:19:54,577 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:19:54,577 INFO L82 GeneralOperation]: Start isEquivalent. First operand 35 states. Second operand 29 states. [2019-01-18 14:19:54,577 INFO L74 IsIncluded]: Start isIncluded. First operand 35 states. Second operand 29 states. [2019-01-18 14:19:54,577 INFO L87 Difference]: Start difference. First operand 35 states. Second operand 29 states. [2019-01-18 14:19:54,579 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:54,579 INFO L93 Difference]: Finished difference Result 35 states and 96 transitions. [2019-01-18 14:19:54,579 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 96 transitions. [2019-01-18 14:19:54,580 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:19:54,580 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:19:54,580 INFO L74 IsIncluded]: Start isIncluded. First operand 29 states. Second operand 35 states. [2019-01-18 14:19:54,580 INFO L87 Difference]: Start difference. First operand 29 states. Second operand 35 states. [2019-01-18 14:19:54,581 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:54,582 INFO L93 Difference]: Finished difference Result 35 states and 96 transitions. [2019-01-18 14:19:54,582 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 96 transitions. [2019-01-18 14:19:54,582 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:19:54,582 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:19:54,582 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:19:54,582 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:19:54,582 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 29 states. [2019-01-18 14:19:54,584 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 29 states to 29 states and 92 transitions. [2019-01-18 14:19:54,584 INFO L78 Accepts]: Start accepts. Automaton has 29 states and 92 transitions. Word has length 4 [2019-01-18 14:19:54,584 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:19:54,584 INFO L480 AbstractCegarLoop]: Abstraction has 29 states and 92 transitions. [2019-01-18 14:19:54,584 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-18 14:19:54,584 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 92 transitions. [2019-01-18 14:19:54,585 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-18 14:19:54,585 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:19:54,585 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-18 14:19:54,585 INFO L423 AbstractCegarLoop]: === Iteration 11 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:19:54,585 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:19:54,585 INFO L82 PathProgramCache]: Analyzing trace with hash 929616, now seen corresponding path program 1 times [2019-01-18 14:19:54,586 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:19:54,586 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:19:54,586 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:19:54,587 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:19:54,587 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:19:54,592 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:54,715 INFO L273 TraceCheckUtils]: 0: Hoare triple {1479#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1481#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-01-18 14:19:54,716 INFO L273 TraceCheckUtils]: 1: Hoare triple {1481#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1482#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-18 14:19:54,717 INFO L273 TraceCheckUtils]: 2: Hoare triple {1482#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1483#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:19:54,718 INFO L273 TraceCheckUtils]: 3: Hoare triple {1483#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1480#false} is VALID [2019-01-18 14:19:54,718 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-18 14:19:54,719 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:19:54,719 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:19:54,719 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-18 14:19:54,719 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [19] [2019-01-18 14:19:54,721 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:19:54,721 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:19:54,759 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:19:54,759 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:19:54,759 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:19:54,759 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:19:54,760 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:19:54,760 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 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-18 14:19:54,768 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:19:54,768 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:19:54,772 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:54,775 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:54,775 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:19:54,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 15 treesize of output 18 [2019-01-18 14:19:54,797 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:54,798 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:19:54,844 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:54,846 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:54,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, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:19:54,873 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:54,874 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:54,875 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:54,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 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:19:54,888 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:19:54,906 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:54,915 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:54,924 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:54,941 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-18 14:19:54,941 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-18 14:19:54,947 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:19:54,947 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_52|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_52| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:19:54,947 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:19:54,993 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:54,995 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:54,996 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:54,997 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:54,998 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:54,999 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:55,001 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:55,002 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-18 14:19:55,005 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:19:55,036 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-18 14:19:55,036 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-18 14:19:55,040 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:19:55,041 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_53|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_53| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_53| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_53| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_53| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_53| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= .cse0 0))) [2019-01-18 14:19:55,041 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:19:55,140 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:55,142 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:55,143 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:55,144 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:55,145 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:55,146 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:55,147 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:55,148 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:55,150 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:55,151 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-18 14:19:55,154 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:19:55,191 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-18 14:19:55,191 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-18 14:19:57,212 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:19:57,213 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_54|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_54| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (select |v_#memory_int_54| ULTIMATE.start_main_p4) 0) (= (store |v_#memory_int_54| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_54| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (select |v_#memory_int_54| ULTIMATE.start_main_p3)))) [2019-01-18 14:19:57,213 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:19:57,255 INFO L273 TraceCheckUtils]: 0: Hoare triple {1479#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1487#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:19:57,257 INFO L273 TraceCheckUtils]: 1: Hoare triple {1487#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1491#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:19:57,260 INFO L273 TraceCheckUtils]: 2: Hoare triple {1491#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1495#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:19:57,261 INFO L273 TraceCheckUtils]: 3: Hoare triple {1495#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {1480#false} is VALID [2019-01-18 14:19:57,262 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-18 14:19:57,262 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:19:57,298 INFO L273 TraceCheckUtils]: 3: Hoare triple {1499#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1480#false} is VALID [2019-01-18 14:19:57,300 INFO L273 TraceCheckUtils]: 2: Hoare triple {1503#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1499#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:19:57,301 INFO L273 TraceCheckUtils]: 1: Hoare triple {1507#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1503#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:19:57,303 INFO L273 TraceCheckUtils]: 0: Hoare triple {1479#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1507#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:19:57,303 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-18 14:19:57,322 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:19:57,322 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-18 14:19:57,322 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:19:57,322 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-18 14:19:57,323 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:19:57,323 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:19:57,363 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-18 14:19:57,364 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:19:57,364 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:19:57,364 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:19:57,365 INFO L87 Difference]: Start difference. First operand 29 states and 92 transitions. Second operand 8 states. [2019-01-18 14:19:58,270 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:58,271 INFO L93 Difference]: Finished difference Result 55 states and 140 transitions. [2019-01-18 14:19:58,271 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-18 14:19:58,271 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-18 14:19:58,271 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:19:58,271 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:19:58,272 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 54 transitions. [2019-01-18 14:19:58,272 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:19:58,273 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 54 transitions. [2019-01-18 14:19:58,273 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 54 transitions. [2019-01-18 14:19:58,350 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-18 14:19:58,351 INFO L225 Difference]: With dead ends: 55 [2019-01-18 14:19:58,352 INFO L226 Difference]: Without dead ends: 54 [2019-01-18 14:19:58,352 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-01-18 14:19:58,353 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 54 states. [2019-01-18 14:19:58,542 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 54 to 34. [2019-01-18 14:19:58,542 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:19:58,542 INFO L82 GeneralOperation]: Start isEquivalent. First operand 54 states. Second operand 34 states. [2019-01-18 14:19:58,542 INFO L74 IsIncluded]: Start isIncluded. First operand 54 states. Second operand 34 states. [2019-01-18 14:19:58,542 INFO L87 Difference]: Start difference. First operand 54 states. Second operand 34 states. [2019-01-18 14:19:58,545 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:58,545 INFO L93 Difference]: Finished difference Result 54 states and 137 transitions. [2019-01-18 14:19:58,545 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 137 transitions. [2019-01-18 14:19:58,545 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:19:58,546 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:19:58,547 INFO L74 IsIncluded]: Start isIncluded. First operand 34 states. Second operand 54 states. [2019-01-18 14:19:58,547 INFO L87 Difference]: Start difference. First operand 34 states. Second operand 54 states. [2019-01-18 14:19:58,549 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:19:58,549 INFO L93 Difference]: Finished difference Result 54 states and 137 transitions. [2019-01-18 14:19:58,549 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 137 transitions. [2019-01-18 14:19:58,549 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:19:58,549 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:19:58,550 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:19:58,550 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:19:58,550 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 34 states. [2019-01-18 14:19:58,551 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 34 states to 34 states and 117 transitions. [2019-01-18 14:19:58,551 INFO L78 Accepts]: Start accepts. Automaton has 34 states and 117 transitions. Word has length 4 [2019-01-18 14:19:58,552 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:19:58,552 INFO L480 AbstractCegarLoop]: Abstraction has 34 states and 117 transitions. [2019-01-18 14:19:58,552 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:19:58,552 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states and 117 transitions. [2019-01-18 14:19:58,552 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-18 14:19:58,552 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:19:58,552 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-18 14:19:58,553 INFO L423 AbstractCegarLoop]: === Iteration 12 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:19:58,553 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:19:58,553 INFO L82 PathProgramCache]: Analyzing trace with hash 933584, now seen corresponding path program 1 times [2019-01-18 14:19:58,553 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:19:58,555 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:19:58,556 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:19:58,556 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:19:58,556 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:19:58,569 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:58,690 INFO L273 TraceCheckUtils]: 0: Hoare triple {1752#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1754#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-18 14:19:58,692 INFO L273 TraceCheckUtils]: 1: Hoare triple {1754#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1755#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:19:58,693 INFO L273 TraceCheckUtils]: 2: Hoare triple {1755#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {1756#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-18 14:19:58,699 INFO L273 TraceCheckUtils]: 3: Hoare triple {1756#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {1753#false} is VALID [2019-01-18 14:19:58,699 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-18 14:19:58,699 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:19:58,699 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:19:58,700 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-18 14:19:58,700 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [19] [2019-01-18 14:19:58,700 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:19:58,701 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:19:58,717 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:19:58,717 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:19:58,717 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:19:58,718 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:19:58,718 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:19:58,718 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-18 14:19:58,726 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:19:58,726 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:19:58,733 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:58,736 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:19:58,736 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:19:58,765 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:19:58,774 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:58,775 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:19:58,783 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:58,785 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:58,786 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:19:58,804 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:58,805 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:58,806 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:58,808 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:19:58,815 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:19:58,832 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:58,841 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:58,850 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:19:58,866 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-18 14:19:58,867 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-18 14:19:58,871 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:19:58,871 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_57|, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_57| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:19:58,871 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:19:58,918 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:58,919 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:58,920 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:58,921 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:58,922 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:58,924 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:58,925 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:58,926 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-18 14:19:58,929 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:19:58,959 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-18 14:19:58,959 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-18 14:19:58,981 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:19:58,981 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_58|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_58| ULTIMATE.start_main_p2))) (and (= 0 (select |v_#memory_int_58| ULTIMATE.start_main_p4)) (= (select |v_#memory_int_58| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_58| ULTIMATE.start_main_p1) 0) (= (store |v_#memory_int_58| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:19:58,981 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:19:59,042 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:59,043 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:59,044 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:59,046 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:59,047 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:59,048 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:59,049 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:59,050 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:59,051 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:19:59,053 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-18 14:19:59,055 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:19:59,089 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-18 14:19:59,090 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-18 14:19:59,110 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:19:59,111 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_59|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_59| ULTIMATE.start_main_p3))) (and (= 0 (select |v_#memory_int_59| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_59| ULTIMATE.start_main_p1)) (= (store |v_#memory_int_59| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 .cse0) (= 0 (+ (select |v_#memory_int_59| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:19:59,111 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:19:59,149 INFO L273 TraceCheckUtils]: 0: Hoare triple {1752#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1760#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:19:59,150 INFO L273 TraceCheckUtils]: 1: Hoare triple {1760#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1764#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-18 14:19:59,153 INFO L273 TraceCheckUtils]: 2: Hoare triple {1764#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {1768#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-18 14:19:59,154 INFO L273 TraceCheckUtils]: 3: Hoare triple {1768#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p1] >= 0); {1753#false} is VALID [2019-01-18 14:19:59,155 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-18 14:19:59,155 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:19:59,194 INFO L273 TraceCheckUtils]: 3: Hoare triple {1772#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1753#false} is VALID [2019-01-18 14:19:59,196 INFO L273 TraceCheckUtils]: 2: Hoare triple {1776#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {1772#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:19:59,204 INFO L273 TraceCheckUtils]: 1: Hoare triple {1780#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1776#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:19:59,206 INFO L273 TraceCheckUtils]: 0: Hoare triple {1752#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1780#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:19:59,206 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-18 14:19:59,227 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:19:59,228 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-18 14:19:59,228 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:19:59,228 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-18 14:19:59,228 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:19:59,228 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:19:59,241 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-18 14:19:59,241 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:19:59,241 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:19:59,242 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:19:59,242 INFO L87 Difference]: Start difference. First operand 34 states and 117 transitions. Second operand 8 states. [2019-01-18 14:20:00,086 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:00,087 INFO L93 Difference]: Finished difference Result 56 states and 150 transitions. [2019-01-18 14:20:00,087 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-18 14:20:00,087 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-18 14:20:00,088 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:20:00,088 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:20:00,088 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 47 transitions. [2019-01-18 14:20:00,088 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:20:00,089 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 47 transitions. [2019-01-18 14:20:00,089 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 47 transitions. [2019-01-18 14:20:00,182 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 47 edges. 47 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:20:00,184 INFO L225 Difference]: With dead ends: 56 [2019-01-18 14:20:00,184 INFO L226 Difference]: Without dead ends: 54 [2019-01-18 14:20:00,185 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-18 14:20:00,185 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 54 states. [2019-01-18 14:20:00,367 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 54 to 36. [2019-01-18 14:20:00,367 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:20:00,368 INFO L82 GeneralOperation]: Start isEquivalent. First operand 54 states. Second operand 36 states. [2019-01-18 14:20:00,368 INFO L74 IsIncluded]: Start isIncluded. First operand 54 states. Second operand 36 states. [2019-01-18 14:20:00,368 INFO L87 Difference]: Start difference. First operand 54 states. Second operand 36 states. [2019-01-18 14:20:00,370 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:00,371 INFO L93 Difference]: Finished difference Result 54 states and 146 transitions. [2019-01-18 14:20:00,371 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 146 transitions. [2019-01-18 14:20:00,371 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:00,371 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:00,372 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 54 states. [2019-01-18 14:20:00,372 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 54 states. [2019-01-18 14:20:00,374 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:00,374 INFO L93 Difference]: Finished difference Result 54 states and 146 transitions. [2019-01-18 14:20:00,374 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 146 transitions. [2019-01-18 14:20:00,374 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:00,375 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:00,375 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:20:00,375 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:20:00,375 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 36 states. [2019-01-18 14:20:00,377 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 36 states to 36 states and 127 transitions. [2019-01-18 14:20:00,377 INFO L78 Accepts]: Start accepts. Automaton has 36 states and 127 transitions. Word has length 4 [2019-01-18 14:20:00,377 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:20:00,377 INFO L480 AbstractCegarLoop]: Abstraction has 36 states and 127 transitions. [2019-01-18 14:20:00,377 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:20:00,377 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 127 transitions. [2019-01-18 14:20:00,378 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-18 14:20:00,378 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:20:00,378 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-18 14:20:00,378 INFO L423 AbstractCegarLoop]: === Iteration 13 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:20:00,378 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:00,379 INFO L82 PathProgramCache]: Analyzing trace with hash 937616, now seen corresponding path program 1 times [2019-01-18 14:20:00,379 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:20:00,379 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:00,380 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:00,380 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:00,380 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:20:00,386 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:00,467 INFO L273 TraceCheckUtils]: 0: Hoare triple {2034#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2036#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:20:00,468 INFO L273 TraceCheckUtils]: 1: Hoare triple {2036#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {2037#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:00,469 INFO L273 TraceCheckUtils]: 2: Hoare triple {2037#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {2037#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:00,470 INFO L273 TraceCheckUtils]: 3: Hoare triple {2037#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {2035#false} is VALID [2019-01-18 14:20:00,470 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-18 14:20:00,471 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:00,471 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:20:00,471 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-18 14:20:00,471 INFO L207 CegarAbsIntRunner]: [0], [14], [20], [21] [2019-01-18 14:20:00,472 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:20:00,473 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:20:00,485 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:20:00,485 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-18 14:20:00,486 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:00,486 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:20:00,486 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:00,486 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-18 14:20:00,495 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:00,495 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:20:00,499 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:00,504 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:00,504 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:20:00,538 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:20:00,546 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-18 14:20:00,561 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:00,562 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-01-18 14:20:00,574 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:00,575 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:00,577 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-01-18 14:20:00,582 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:00,596 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:00,604 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:00,613 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:00,628 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-18 14:20:00,628 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:22, output treesize:27 [2019-01-18 14:20:00,633 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:00,633 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_62|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_62| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:20:00,633 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:20:00,684 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:00,685 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:00,686 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:00,687 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:00,688 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 34 [2019-01-18 14:20:00,691 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:00,711 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-18 14:20:00,711 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:32, output treesize:22 [2019-01-18 14:20:00,725 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:00,725 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_63|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_63| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= |#memory_int| (store |v_#memory_int_63| ULTIMATE.start_main_p3 (+ .cse0 1))) (= (select |v_#memory_int_63| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_63| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:20:00,725 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:20:00,760 INFO L273 TraceCheckUtils]: 0: Hoare triple {2034#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2041#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:20:00,761 INFO L273 TraceCheckUtils]: 1: Hoare triple {2041#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {2045#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:20:00,775 INFO L273 TraceCheckUtils]: 2: Hoare triple {2045#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {2045#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:20:00,776 INFO L273 TraceCheckUtils]: 3: Hoare triple {2045#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {2035#false} is VALID [2019-01-18 14:20:00,776 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-18 14:20:00,776 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:20:00,794 INFO L273 TraceCheckUtils]: 3: Hoare triple {2052#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {2035#false} is VALID [2019-01-18 14:20:00,795 INFO L273 TraceCheckUtils]: 2: Hoare triple {2052#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {2052#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:00,796 INFO L273 TraceCheckUtils]: 1: Hoare triple {2059#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {2052#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:00,798 INFO L273 TraceCheckUtils]: 0: Hoare triple {2034#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2059#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:00,799 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-18 14:20:00,818 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:20:00,818 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-18 14:20:00,819 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:20:00,819 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-18 14:20:00,819 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:20:00,819 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-18 14:20:00,830 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-18 14:20:00,830 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-18 14:20:00,830 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-18 14:20:00,830 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-18 14:20:00,831 INFO L87 Difference]: Start difference. First operand 36 states and 127 transitions. Second operand 6 states. [2019-01-18 14:20:01,213 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:01,213 INFO L93 Difference]: Finished difference Result 48 states and 142 transitions. [2019-01-18 14:20:01,213 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-18 14:20:01,214 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-18 14:20:01,214 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:20:01,214 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-18 14:20:01,214 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 36 transitions. [2019-01-18 14:20:01,215 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-18 14:20:01,215 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 36 transitions. [2019-01-18 14:20:01,215 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 36 transitions. [2019-01-18 14:20:01,283 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 36 edges. 36 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:20:01,285 INFO L225 Difference]: With dead ends: 48 [2019-01-18 14:20:01,285 INFO L226 Difference]: Without dead ends: 47 [2019-01-18 14:20:01,285 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-18 14:20:01,286 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 47 states. [2019-01-18 14:20:01,440 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 47 to 36. [2019-01-18 14:20:01,440 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:20:01,440 INFO L82 GeneralOperation]: Start isEquivalent. First operand 47 states. Second operand 36 states. [2019-01-18 14:20:01,441 INFO L74 IsIncluded]: Start isIncluded. First operand 47 states. Second operand 36 states. [2019-01-18 14:20:01,441 INFO L87 Difference]: Start difference. First operand 47 states. Second operand 36 states. [2019-01-18 14:20:01,442 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:01,443 INFO L93 Difference]: Finished difference Result 47 states and 140 transitions. [2019-01-18 14:20:01,443 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 140 transitions. [2019-01-18 14:20:01,443 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:01,443 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:01,443 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 47 states. [2019-01-18 14:20:01,444 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 47 states. [2019-01-18 14:20:01,445 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:01,445 INFO L93 Difference]: Finished difference Result 47 states and 140 transitions. [2019-01-18 14:20:01,445 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 140 transitions. [2019-01-18 14:20:01,446 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:01,446 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:01,446 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:20:01,446 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:20:01,446 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 36 states. [2019-01-18 14:20:01,447 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 36 states to 36 states and 127 transitions. [2019-01-18 14:20:01,448 INFO L78 Accepts]: Start accepts. Automaton has 36 states and 127 transitions. Word has length 4 [2019-01-18 14:20:01,448 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:20:01,448 INFO L480 AbstractCegarLoop]: Abstraction has 36 states and 127 transitions. [2019-01-18 14:20:01,448 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-18 14:20:01,448 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 127 transitions. [2019-01-18 14:20:01,448 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-18 14:20:01,448 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:20:01,449 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-18 14:20:01,449 INFO L423 AbstractCegarLoop]: === Iteration 14 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:20:01,449 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:01,449 INFO L82 PathProgramCache]: Analyzing trace with hash 29112214, now seen corresponding path program 1 times [2019-01-18 14:20:01,449 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:20:01,450 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:01,450 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:01,450 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:01,450 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:20:01,456 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:01,601 INFO L273 TraceCheckUtils]: 0: Hoare triple {2289#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2291#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:20:01,602 INFO L273 TraceCheckUtils]: 1: Hoare triple {2291#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2292#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:20:01,603 INFO L273 TraceCheckUtils]: 2: Hoare triple {2292#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2292#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:20:01,604 INFO L273 TraceCheckUtils]: 3: Hoare triple {2292#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {2293#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:01,605 INFO L273 TraceCheckUtils]: 4: Hoare triple {2293#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {2290#false} is VALID [2019-01-18 14:20:01,605 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-18 14:20:01,606 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:01,606 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:20:01,606 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-18 14:20:01,606 INFO L207 CegarAbsIntRunner]: [0], [6], [16], [20], [21] [2019-01-18 14:20:01,611 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:20:01,611 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:20:01,630 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:20:01,630 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:20:01,630 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:01,631 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:20:01,631 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:01,631 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-18 14:20:01,644 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:01,644 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:20:01,660 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:01,678 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:01,679 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:20:01,749 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:20:01,757 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:01,758 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:20:01,769 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:01,771 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:01,772 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:20:01,785 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:01,787 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:01,788 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:01,789 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:20:01,794 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:01,829 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:01,840 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:01,849 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:01,866 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-18 14:20:01,866 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-18 14:20:01,872 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:01,872 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_65|, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_65| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:20:01,873 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:20:01,921 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:01,923 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:01,924 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:01,925 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:01,926 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:01,928 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:01,929 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:01,930 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-18 14:20:01,933 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:01,966 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-18 14:20:01,966 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-18 14:20:02,572 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:02,573 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_66|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_66| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_66| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_66| ULTIMATE.start_main_p3) 0) (= (store |v_#memory_int_66| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_66| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:20:02,573 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:20:02,628 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:02,629 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:02,630 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:02,631 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:02,632 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:02,634 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:02,635 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:02,636 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:02,637 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:02,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 59 [2019-01-18 14:20:02,650 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:02,682 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-18 14:20:02,682 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-18 14:20:02,698 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:02,698 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_67|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_67| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (select |v_#memory_int_67| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_67| ULTIMATE.start_main_p2) 0) (= (store |v_#memory_int_67| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (+ (select |v_#memory_int_67| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:20:02,698 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:20:02,745 INFO L273 TraceCheckUtils]: 0: Hoare triple {2289#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2297#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:20:02,747 INFO L273 TraceCheckUtils]: 1: Hoare triple {2297#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2301#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-18 14:20:02,750 INFO L273 TraceCheckUtils]: 2: Hoare triple {2301#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2305#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-18 14:20:02,751 INFO L273 TraceCheckUtils]: 3: Hoare triple {2305#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume #memory_int[main_p1] >= 0; {2305#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-18 14:20:02,752 INFO L273 TraceCheckUtils]: 4: Hoare triple {2305#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume !(#memory_int[main_p2] <= 0); {2290#false} is VALID [2019-01-18 14:20:02,752 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-18 14:20:02,753 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:20:02,796 INFO L273 TraceCheckUtils]: 4: Hoare triple {2312#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {2290#false} is VALID [2019-01-18 14:20:02,796 INFO L273 TraceCheckUtils]: 3: Hoare triple {2312#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {2312#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:02,797 INFO L273 TraceCheckUtils]: 2: Hoare triple {2319#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2312#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:02,799 INFO L273 TraceCheckUtils]: 1: Hoare triple {2323#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2319#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:02,801 INFO L273 TraceCheckUtils]: 0: Hoare triple {2289#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2323#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:02,801 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-18 14:20:02,821 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:20:02,821 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-18 14:20:02,821 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:20:02,821 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-18 14:20:02,822 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:20:02,822 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:20:02,838 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:20:02,838 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:20:02,839 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:20:02,839 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:20:02,839 INFO L87 Difference]: Start difference. First operand 36 states and 127 transitions. Second operand 8 states. [2019-01-18 14:20:03,639 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:03,639 INFO L93 Difference]: Finished difference Result 56 states and 161 transitions. [2019-01-18 14:20:03,640 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-18 14:20:03,640 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-18 14:20:03,640 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:20:03,640 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:20:03,641 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2019-01-18 14:20:03,641 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:20:03,642 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2019-01-18 14:20:03,642 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 44 transitions. [2019-01-18 14:20:04,007 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:20:04,009 INFO L225 Difference]: With dead ends: 56 [2019-01-18 14:20:04,009 INFO L226 Difference]: Without dead ends: 55 [2019-01-18 14:20:04,009 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 2 SyntacticMatches, 1 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-18 14:20:04,010 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 55 states. [2019-01-18 14:20:04,181 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 55 to 39. [2019-01-18 14:20:04,182 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:20:04,182 INFO L82 GeneralOperation]: Start isEquivalent. First operand 55 states. Second operand 39 states. [2019-01-18 14:20:04,182 INFO L74 IsIncluded]: Start isIncluded. First operand 55 states. Second operand 39 states. [2019-01-18 14:20:04,182 INFO L87 Difference]: Start difference. First operand 55 states. Second operand 39 states. [2019-01-18 14:20:04,184 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:04,184 INFO L93 Difference]: Finished difference Result 55 states and 159 transitions. [2019-01-18 14:20:04,184 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 159 transitions. [2019-01-18 14:20:04,184 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:04,184 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:04,185 INFO L74 IsIncluded]: Start isIncluded. First operand 39 states. Second operand 55 states. [2019-01-18 14:20:04,185 INFO L87 Difference]: Start difference. First operand 39 states. Second operand 55 states. [2019-01-18 14:20:04,186 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:04,186 INFO L93 Difference]: Finished difference Result 55 states and 159 transitions. [2019-01-18 14:20:04,187 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 159 transitions. [2019-01-18 14:20:04,187 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:04,187 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:04,187 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:20:04,187 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:20:04,187 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 39 states. [2019-01-18 14:20:04,189 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 39 states to 39 states and 142 transitions. [2019-01-18 14:20:04,189 INFO L78 Accepts]: Start accepts. Automaton has 39 states and 142 transitions. Word has length 5 [2019-01-18 14:20:04,189 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:20:04,189 INFO L480 AbstractCegarLoop]: Abstraction has 39 states and 142 transitions. [2019-01-18 14:20:04,189 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:20:04,189 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 142 transitions. [2019-01-18 14:20:04,190 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-18 14:20:04,190 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:20:04,190 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-18 14:20:04,190 INFO L423 AbstractCegarLoop]: === Iteration 15 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:20:04,190 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:04,190 INFO L82 PathProgramCache]: Analyzing trace with hash 29111902, now seen corresponding path program 1 times [2019-01-18 14:20:04,191 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:20:04,191 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:04,191 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:04,192 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:04,192 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:20:04,197 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:04,391 INFO L273 TraceCheckUtils]: 0: Hoare triple {2588#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2590#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (<= (+ ULTIMATE.start_main_p1 3) ULTIMATE.start_main_p4) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-18 14:20:04,392 INFO L273 TraceCheckUtils]: 1: Hoare triple {2590#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (<= (+ ULTIMATE.start_main_p1 3) ULTIMATE.start_main_p4) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2591#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} is VALID [2019-01-18 14:20:04,393 INFO L273 TraceCheckUtils]: 2: Hoare triple {2591#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2592#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} is VALID [2019-01-18 14:20:04,394 INFO L273 TraceCheckUtils]: 3: Hoare triple {2592#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2593#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:20:04,394 INFO L273 TraceCheckUtils]: 4: Hoare triple {2593#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {2589#false} is VALID [2019-01-18 14:20:04,395 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-18 14:20:04,395 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:04,395 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:20:04,395 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-18 14:20:04,395 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [16], [19] [2019-01-18 14:20:04,396 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:20:04,396 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:20:04,415 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:20:04,415 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-18 14:20:04,416 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:04,416 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:20:04,416 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:04,416 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-18 14:20:04,426 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:04,426 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:20:04,430 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:04,434 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:04,434 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:20:04,457 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:20:04,467 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:04,468 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:20:04,478 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:04,479 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:04,480 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:20:04,503 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:04,504 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:04,505 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:04,506 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:20:04,509 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:04,527 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:04,538 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:04,546 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:04,563 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-18 14:20:04,563 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-18 14:20:04,569 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:04,569 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_70|, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= |#memory_int| (store (store (store (store |v_#memory_int_70| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0))) [2019-01-18 14:20:04,569 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:20:04,619 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:04,621 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:04,622 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:04,623 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:04,625 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:04,628 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:04,629 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:04,630 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-18 14:20:04,633 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:04,664 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-18 14:20:04,664 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-18 14:20:05,184 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:05,184 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_71|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_71| ULTIMATE.start_main_p4))) (and (= .cse0 0) (= 0 (select |v_#memory_int_71| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_71| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (select |v_#memory_int_71| ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_71| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:20:05,184 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:20:05,353 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:05,354 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:05,355 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:05,356 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:05,357 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:05,358 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:05,359 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:05,360 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:05,361 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:05,362 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-18 14:20:05,366 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:05,402 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-18 14:20:05,403 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-18 14:20:05,408 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:05,408 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_72|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_72| ULTIMATE.start_main_p1))) (and (= (store |v_#memory_int_72| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_72| ULTIMATE.start_main_p3)) (= (+ (select |v_#memory_int_72| ULTIMATE.start_main_p4) 1) 0) (= 0 .cse0) (= 0 (select |v_#memory_int_72| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:20:05,409 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:20:05,469 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:05,471 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:05,472 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:05,473 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:05,475 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:05,476 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:05,477 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:05,478 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:05,478 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:20:05,480 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:05,481 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 72 [2019-01-18 14:20:05,490 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:05,527 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-18 14:20:05,527 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:30 [2019-01-18 14:20:05,535 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:05,535 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_73|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_73| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_73| ULTIMATE.start_main_p4) 1)) (= (select |v_#memory_int_73| ULTIMATE.start_main_p1) 1) (= (store |v_#memory_int_73| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_73| ULTIMATE.start_main_p3)) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:20:05,535 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:20:05,563 INFO L273 TraceCheckUtils]: 0: Hoare triple {2588#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2597#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:20:05,566 INFO L273 TraceCheckUtils]: 1: Hoare triple {2597#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2601#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-18 14:20:05,568 INFO L273 TraceCheckUtils]: 2: Hoare triple {2601#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2605#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-18 14:20:05,571 INFO L273 TraceCheckUtils]: 3: Hoare triple {2605#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2609#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:20:05,572 INFO L273 TraceCheckUtils]: 4: Hoare triple {2609#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {2589#false} is VALID [2019-01-18 14:20:05,573 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-18 14:20:05,573 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:20:05,632 INFO L273 TraceCheckUtils]: 4: Hoare triple {2613#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {2589#false} is VALID [2019-01-18 14:20:05,633 INFO L273 TraceCheckUtils]: 3: Hoare triple {2617#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2613#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:20:05,634 INFO L273 TraceCheckUtils]: 2: Hoare triple {2621#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2617#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:20:05,635 INFO L273 TraceCheckUtils]: 1: Hoare triple {2625#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2621#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:20:05,637 INFO L273 TraceCheckUtils]: 0: Hoare triple {2588#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2625#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:20:05,637 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 3 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:20:05,657 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:20:05,657 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-18 14:20:05,657 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:20:05,658 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-18 14:20:05,658 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:20:05,658 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-18 14:20:05,673 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-18 14:20:05,673 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-18 14:20:05,673 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-18 14:20:05,673 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=70, Invalid=112, Unknown=0, NotChecked=0, Total=182 [2019-01-18 14:20:05,674 INFO L87 Difference]: Start difference. First operand 39 states and 142 transitions. Second operand 10 states. [2019-01-18 14:20:07,075 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:07,075 INFO L93 Difference]: Finished difference Result 76 states and 212 transitions. [2019-01-18 14:20:07,075 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-18 14:20:07,075 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-18 14:20:07,076 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:20:07,076 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:20:07,077 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 64 transitions. [2019-01-18 14:20:07,077 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:20:07,077 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 64 transitions. [2019-01-18 14:20:07,078 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 64 transitions. [2019-01-18 14:20:07,313 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-18 14:20:07,315 INFO L225 Difference]: With dead ends: 76 [2019-01-18 14:20:07,316 INFO L226 Difference]: Without dead ends: 75 [2019-01-18 14:20:07,316 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 59 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=88, Invalid=152, Unknown=0, NotChecked=0, Total=240 [2019-01-18 14:20:07,316 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 75 states. [2019-01-18 14:20:07,535 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 75 to 41. [2019-01-18 14:20:07,536 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:20:07,536 INFO L82 GeneralOperation]: Start isEquivalent. First operand 75 states. Second operand 41 states. [2019-01-18 14:20:07,536 INFO L74 IsIncluded]: Start isIncluded. First operand 75 states. Second operand 41 states. [2019-01-18 14:20:07,536 INFO L87 Difference]: Start difference. First operand 75 states. Second operand 41 states. [2019-01-18 14:20:07,540 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:07,540 INFO L93 Difference]: Finished difference Result 75 states and 209 transitions. [2019-01-18 14:20:07,540 INFO L276 IsEmpty]: Start isEmpty. Operand 75 states and 209 transitions. [2019-01-18 14:20:07,541 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:07,541 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:07,541 INFO L74 IsIncluded]: Start isIncluded. First operand 41 states. Second operand 75 states. [2019-01-18 14:20:07,541 INFO L87 Difference]: Start difference. First operand 41 states. Second operand 75 states. [2019-01-18 14:20:07,543 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:07,544 INFO L93 Difference]: Finished difference Result 75 states and 209 transitions. [2019-01-18 14:20:07,544 INFO L276 IsEmpty]: Start isEmpty. Operand 75 states and 209 transitions. [2019-01-18 14:20:07,544 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:07,544 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:07,544 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:20:07,545 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:20:07,545 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 41 states. [2019-01-18 14:20:07,546 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 41 states to 41 states and 152 transitions. [2019-01-18 14:20:07,546 INFO L78 Accepts]: Start accepts. Automaton has 41 states and 152 transitions. Word has length 5 [2019-01-18 14:20:07,547 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:20:07,547 INFO L480 AbstractCegarLoop]: Abstraction has 41 states and 152 transitions. [2019-01-18 14:20:07,547 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-18 14:20:07,547 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 152 transitions. [2019-01-18 14:20:07,547 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-18 14:20:07,547 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:20:07,547 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-18 14:20:07,548 INFO L423 AbstractCegarLoop]: === Iteration 16 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:20:07,548 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:07,548 INFO L82 PathProgramCache]: Analyzing trace with hash 29115870, now seen corresponding path program 1 times [2019-01-18 14:20:07,548 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:20:07,549 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:07,549 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:07,549 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:07,549 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:20:07,556 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:08,116 INFO L273 TraceCheckUtils]: 0: Hoare triple {2962#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2964#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:20:08,117 INFO L273 TraceCheckUtils]: 1: Hoare triple {2964#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2965#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-18 14:20:08,118 INFO L273 TraceCheckUtils]: 2: Hoare triple {2965#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2966#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:20:08,118 INFO L273 TraceCheckUtils]: 3: Hoare triple {2966#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {2967#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-18 14:20:08,120 INFO L273 TraceCheckUtils]: 4: Hoare triple {2967#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {2963#false} is VALID [2019-01-18 14:20:08,120 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-18 14:20:08,121 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:08,121 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:20:08,121 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-18 14:20:08,121 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [16], [19] [2019-01-18 14:20:08,122 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:20:08,122 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:20:08,135 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:20:08,135 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-18 14:20:08,135 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:08,135 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:20:08,135 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:08,135 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-18 14:20:08,145 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:08,145 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:20:08,149 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:08,154 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:08,154 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:20:08,176 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:20:08,191 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:08,191 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:20:08,211 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:08,213 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:08,213 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:20:08,255 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:08,257 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:08,259 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:08,260 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:20:08,270 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:08,298 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:08,314 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:08,328 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:08,347 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:08,347 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-18 14:20:08,351 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:08,352 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_77|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_77| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:20:08,352 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:20:08,442 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:08,443 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:08,444 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:08,446 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:08,447 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:08,448 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:08,449 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:08,450 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-18 14:20:08,453 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:08,482 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-18 14:20:08,482 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-18 14:20:10,499 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:10,500 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_78|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_78| ULTIMATE.start_main_p4))) (and (= (store |v_#memory_int_78| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_78| ULTIMATE.start_main_p2) 0) (= .cse0 0) (= (select |v_#memory_int_78| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_78| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:20:10,500 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:20:11,102 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:11,117 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:11,141 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:11,165 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:11,186 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:11,211 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:11,243 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:11,252 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:20:11,252 INFO L303 Elim1Store]: Index analysis took 175 ms [2019-01-18 14:20:11,253 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-18 14:20:11,278 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:11,414 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-18 14:20:11,415 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:30 [2019-01-18 14:20:11,503 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:11,504 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_79|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_79| ULTIMATE.start_main_p2))) (and (= |#memory_int| (store |v_#memory_int_79| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_79| ULTIMATE.start_main_p4) 1)) (= (select |v_#memory_int_79| ULTIMATE.start_main_p1) 0) (= .cse0 0) (= (select |v_#memory_int_79| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:20:11,504 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:20:11,568 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:11,569 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:11,570 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:11,572 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:11,573 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:11,574 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:11,575 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:11,577 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:11,578 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:11,579 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 69 [2019-01-18 14:20:11,587 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:11,624 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-18 14:20:11,624 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-01-18 14:20:13,634 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:13,635 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_80|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_80| ULTIMATE.start_main_p3))) (and (= 0 (+ (select |v_#memory_int_80| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= |#memory_int| (store |v_#memory_int_80| ULTIMATE.start_main_p3 (+ .cse0 1))) (= (+ (select |v_#memory_int_80| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |v_#memory_int_80| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:20:13,635 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-18 14:20:13,666 INFO L273 TraceCheckUtils]: 0: Hoare triple {2962#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2971#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:20:13,667 INFO L273 TraceCheckUtils]: 1: Hoare triple {2971#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2975#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:20:13,670 INFO L273 TraceCheckUtils]: 2: Hoare triple {2975#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2979#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:20:13,672 INFO L273 TraceCheckUtils]: 3: Hoare triple {2979#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {2983#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-01-18 14:20:13,673 INFO L273 TraceCheckUtils]: 4: Hoare triple {2983#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} assume !(#memory_int[main_p1] >= 0); {2963#false} is VALID [2019-01-18 14:20:13,674 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-18 14:20:13,674 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:20:13,743 INFO L273 TraceCheckUtils]: 4: Hoare triple {2987#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {2963#false} is VALID [2019-01-18 14:20:13,744 INFO L273 TraceCheckUtils]: 3: Hoare triple {2991#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {2987#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:20:13,745 INFO L273 TraceCheckUtils]: 2: Hoare triple {2995#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2991#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:20:13,747 INFO L273 TraceCheckUtils]: 1: Hoare triple {2999#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2995#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:20:13,750 INFO L273 TraceCheckUtils]: 0: Hoare triple {2962#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2999#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:20:13,750 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-18 14:20:13,770 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:20:13,770 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-18 14:20:13,770 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:20:13,770 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-18 14:20:13,770 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:20:13,770 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-18 14:20:13,785 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-18 14:20:13,785 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-18 14:20:13,786 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-18 14:20:13,786 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=67, Invalid=115, Unknown=0, NotChecked=0, Total=182 [2019-01-18 14:20:13,786 INFO L87 Difference]: Start difference. First operand 41 states and 152 transitions. Second operand 10 states. [2019-01-18 14:20:14,987 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:14,987 INFO L93 Difference]: Finished difference Result 67 states and 187 transitions. [2019-01-18 14:20:14,987 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-18 14:20:14,987 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-18 14:20:14,987 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:20:14,988 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:20:14,988 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 55 transitions. [2019-01-18 14:20:14,988 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:20:14,988 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 55 transitions. [2019-01-18 14:20:14,988 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 55 transitions. [2019-01-18 14:20:15,075 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 55 edges. 55 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:20:15,076 INFO L225 Difference]: With dead ends: 67 [2019-01-18 14:20:15,077 INFO L226 Difference]: Without dead ends: 65 [2019-01-18 14:20:15,077 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 62 ImplicationChecksByTransitivity, 0.8s TimeCoverageRelationStatistics Valid=100, Invalid=172, Unknown=0, NotChecked=0, Total=272 [2019-01-18 14:20:15,077 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 65 states. [2019-01-18 14:20:15,278 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 65 to 39. [2019-01-18 14:20:15,279 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:20:15,279 INFO L82 GeneralOperation]: Start isEquivalent. First operand 65 states. Second operand 39 states. [2019-01-18 14:20:15,279 INFO L74 IsIncluded]: Start isIncluded. First operand 65 states. Second operand 39 states. [2019-01-18 14:20:15,279 INFO L87 Difference]: Start difference. First operand 65 states. Second operand 39 states. [2019-01-18 14:20:15,281 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:15,281 INFO L93 Difference]: Finished difference Result 65 states and 184 transitions. [2019-01-18 14:20:15,281 INFO L276 IsEmpty]: Start isEmpty. Operand 65 states and 184 transitions. [2019-01-18 14:20:15,282 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:15,282 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:15,282 INFO L74 IsIncluded]: Start isIncluded. First operand 39 states. Second operand 65 states. [2019-01-18 14:20:15,282 INFO L87 Difference]: Start difference. First operand 39 states. Second operand 65 states. [2019-01-18 14:20:15,283 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:15,284 INFO L93 Difference]: Finished difference Result 65 states and 184 transitions. [2019-01-18 14:20:15,284 INFO L276 IsEmpty]: Start isEmpty. Operand 65 states and 184 transitions. [2019-01-18 14:20:15,284 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:15,284 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:15,284 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:20:15,284 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:20:15,284 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 39 states. [2019-01-18 14:20:15,285 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 39 states to 39 states and 142 transitions. [2019-01-18 14:20:15,285 INFO L78 Accepts]: Start accepts. Automaton has 39 states and 142 transitions. Word has length 5 [2019-01-18 14:20:15,285 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:20:15,286 INFO L480 AbstractCegarLoop]: Abstraction has 39 states and 142 transitions. [2019-01-18 14:20:15,286 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-18 14:20:15,286 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 142 transitions. [2019-01-18 14:20:15,286 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-18 14:20:15,286 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:20:15,286 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-18 14:20:15,286 INFO L423 AbstractCegarLoop]: === Iteration 17 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:20:15,286 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:15,287 INFO L82 PathProgramCache]: Analyzing trace with hash 29119902, now seen corresponding path program 1 times [2019-01-18 14:20:15,287 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:20:15,287 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:15,287 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:15,287 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:15,287 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:20:15,292 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:15,451 INFO L273 TraceCheckUtils]: 0: Hoare triple {3301#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {3303#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:20:15,453 INFO L273 TraceCheckUtils]: 1: Hoare triple {3303#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3304#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:20:15,454 INFO L273 TraceCheckUtils]: 2: Hoare triple {3304#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {3305#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:15,454 INFO L273 TraceCheckUtils]: 3: Hoare triple {3305#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {3305#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:15,455 INFO L273 TraceCheckUtils]: 4: Hoare triple {3305#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {3302#false} is VALID [2019-01-18 14:20:15,455 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-18 14:20:15,455 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:15,456 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:20:15,456 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-18 14:20:15,456 INFO L207 CegarAbsIntRunner]: [0], [14], [16], [20], [21] [2019-01-18 14:20:15,458 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:20:15,458 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:20:15,477 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:20:15,477 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:20:15,478 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:15,478 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:20:15,478 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:15,478 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-18 14:20:15,493 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:15,493 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:20:15,497 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:15,499 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:15,499 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:20:15,516 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:20:15,530 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-18 14:20:15,547 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:15,548 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-01-18 14:20:15,568 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:15,569 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:15,570 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-01-18 14:20:15,573 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:15,585 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:15,595 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:15,603 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:15,616 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-18 14:20:15,616 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:22, output treesize:27 [2019-01-18 14:20:15,620 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:15,620 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_84|, ULTIMATE.start_main_p1]. (and (= (store (store (store (store |v_#memory_int_84| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:20:15,620 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:20:15,669 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:15,671 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:15,672 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:15,673 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:15,674 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-18 14:20:15,677 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:15,694 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-18 14:20:15,694 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-18 14:20:17,701 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:17,702 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_85|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_85| ULTIMATE.start_main_p4))) (and (= |#memory_int| (store |v_#memory_int_85| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_85| ULTIMATE.start_main_p3) 0) (= .cse0 0) (= (select |v_#memory_int_85| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:20:17,702 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:20:17,745 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:17,746 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:17,748 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:17,749 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:17,750 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:17,751 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:17,752 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-18 14:20:17,755 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:17,776 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-18 14:20:17,776 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:34, output treesize:24 [2019-01-18 14:20:17,806 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:17,806 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_86|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_86| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (store |v_#memory_int_86| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 (+ (select |v_#memory_int_86| ULTIMATE.start_main_p4) 1)) (= (select |v_#memory_int_86| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:20:17,806 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:20:17,844 INFO L273 TraceCheckUtils]: 0: Hoare triple {3301#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {3309#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:20:17,846 INFO L273 TraceCheckUtils]: 1: Hoare triple {3309#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3313#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:20:17,847 INFO L273 TraceCheckUtils]: 2: Hoare triple {3313#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {3317#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-18 14:20:17,847 INFO L273 TraceCheckUtils]: 3: Hoare triple {3317#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume #memory_int[main_p1] >= 0; {3317#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-18 14:20:17,848 INFO L273 TraceCheckUtils]: 4: Hoare triple {3317#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume !(#memory_int[main_p2] <= 0); {3302#false} is VALID [2019-01-18 14:20:17,849 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-18 14:20:17,849 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:20:17,887 INFO L273 TraceCheckUtils]: 4: Hoare triple {3324#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {3302#false} is VALID [2019-01-18 14:20:17,888 INFO L273 TraceCheckUtils]: 3: Hoare triple {3324#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {3324#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:17,889 INFO L273 TraceCheckUtils]: 2: Hoare triple {3331#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {3324#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:17,891 INFO L273 TraceCheckUtils]: 1: Hoare triple {3335#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3331#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:17,893 INFO L273 TraceCheckUtils]: 0: Hoare triple {3301#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {3335#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:17,894 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-18 14:20:17,912 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:20:17,912 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-18 14:20:17,912 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:20:17,912 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-18 14:20:17,912 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:20:17,913 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:20:17,925 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-18 14:20:17,925 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:20:17,925 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:20:17,925 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:20:17,926 INFO L87 Difference]: Start difference. First operand 39 states and 142 transitions. Second operand 8 states. [2019-01-18 14:20:18,992 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:18,993 INFO L93 Difference]: Finished difference Result 58 states and 171 transitions. [2019-01-18 14:20:18,993 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-18 14:20:18,993 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-18 14:20:18,993 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:20:18,993 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:20:18,994 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2019-01-18 14:20:18,994 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:20:18,994 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2019-01-18 14:20:18,995 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 44 transitions. [2019-01-18 14:20:19,140 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:20:19,142 INFO L225 Difference]: With dead ends: 58 [2019-01-18 14:20:19,142 INFO L226 Difference]: Without dead ends: 57 [2019-01-18 14:20:19,143 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-18 14:20:19,143 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 57 states. [2019-01-18 14:20:19,379 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 57 to 41. [2019-01-18 14:20:19,379 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:20:19,380 INFO L82 GeneralOperation]: Start isEquivalent. First operand 57 states. Second operand 41 states. [2019-01-18 14:20:19,380 INFO L74 IsIncluded]: Start isIncluded. First operand 57 states. Second operand 41 states. [2019-01-18 14:20:19,380 INFO L87 Difference]: Start difference. First operand 57 states. Second operand 41 states. [2019-01-18 14:20:19,382 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:19,382 INFO L93 Difference]: Finished difference Result 57 states and 169 transitions. [2019-01-18 14:20:19,382 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 169 transitions. [2019-01-18 14:20:19,382 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:19,382 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:19,382 INFO L74 IsIncluded]: Start isIncluded. First operand 41 states. Second operand 57 states. [2019-01-18 14:20:19,383 INFO L87 Difference]: Start difference. First operand 41 states. Second operand 57 states. [2019-01-18 14:20:19,384 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:19,384 INFO L93 Difference]: Finished difference Result 57 states and 169 transitions. [2019-01-18 14:20:19,384 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 169 transitions. [2019-01-18 14:20:19,384 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:19,385 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:19,385 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:20:19,385 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:20:19,385 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 41 states. [2019-01-18 14:20:19,386 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 41 states to 41 states and 152 transitions. [2019-01-18 14:20:19,386 INFO L78 Accepts]: Start accepts. Automaton has 41 states and 152 transitions. Word has length 5 [2019-01-18 14:20:19,386 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:20:19,387 INFO L480 AbstractCegarLoop]: Abstraction has 41 states and 152 transitions. [2019-01-18 14:20:19,387 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:20:19,387 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 152 transitions. [2019-01-18 14:20:19,387 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-18 14:20:19,387 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:20:19,387 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-18 14:20:19,388 INFO L423 AbstractCegarLoop]: === Iteration 18 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:20:19,388 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:19,388 INFO L82 PathProgramCache]: Analyzing trace with hash 28823602, now seen corresponding path program 2 times [2019-01-18 14:20:19,388 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:20:19,389 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:19,389 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:19,389 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:19,389 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:20:19,393 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:19,570 INFO L273 TraceCheckUtils]: 0: Hoare triple {3612#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {3614#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:20:19,572 INFO L273 TraceCheckUtils]: 1: Hoare triple {3614#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {3615#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:20:19,573 INFO L273 TraceCheckUtils]: 2: Hoare triple {3615#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3616#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-18 14:20:19,574 INFO L273 TraceCheckUtils]: 3: Hoare triple {3616#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {3617#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:20:19,580 INFO L273 TraceCheckUtils]: 4: Hoare triple {3617#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {3613#false} is VALID [2019-01-18 14:20:19,580 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-18 14:20:19,580 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:19,580 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:20:19,581 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-18 14:20:19,581 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-18 14:20:19,581 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:19,581 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 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-18 14:20:19,591 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-18 14:20:19,591 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-18 14:20:19,598 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-18 14:20:19,598 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-18 14:20:19,601 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:19,602 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:20:19,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 15 treesize of output 18 [2019-01-18 14:20:19,638 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:19,638 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:20:19,669 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:19,671 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:19,672 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:20:19,703 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:19,705 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:19,706 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:19,707 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:20:19,710 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:19,728 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:19,739 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:19,748 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:19,782 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-18 14:20:19,782 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-18 14:20:19,786 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:19,786 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_89|, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_89| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:20:19,787 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:20:19,838 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:19,839 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:19,840 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:19,842 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:19,843 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:19,844 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:19,845 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:19,846 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-18 14:20:19,850 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:19,880 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-18 14:20:19,880 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-18 14:20:19,894 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:19,895 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_90|, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_90| ULTIMATE.start_main_p1))) (and (= (store |v_#memory_int_90| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_90| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_90| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_90| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= .cse0 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:20:19,895 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:20:19,950 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:19,951 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:19,951 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:19,952 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:19,953 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:19,954 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:19,957 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:19,958 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:19,959 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:19,960 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-18 14:20:19,963 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:19,997 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-18 14:20:19,997 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-18 14:20:20,006 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:20,006 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_91|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_91| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_91| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_91| ULTIMATE.start_main_p1) 1) (= .cse0 0) (= (select |v_#memory_int_91| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_91| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:20:20,006 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:20:20,064 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:20,066 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:20,067 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:20,068 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:20,069 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:20,070 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:20,071 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:20,072 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:20,073 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:20:20,074 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:20,075 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 72 [2019-01-18 14:20:20,080 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:20,116 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-18 14:20:20,116 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:30 [2019-01-18 14:20:20,124 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:20,124 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_92|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_92| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_92| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_92| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |v_#memory_int_92| ULTIMATE.start_main_p4) 1)) (= (store |v_#memory_int_92| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= .cse0 0))) [2019-01-18 14:20:20,124 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:20:20,155 INFO L273 TraceCheckUtils]: 0: Hoare triple {3612#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {3621#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:20:20,157 INFO L273 TraceCheckUtils]: 1: Hoare triple {3621#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {3625#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:20:20,159 INFO L273 TraceCheckUtils]: 2: Hoare triple {3625#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3629#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-18 14:20:20,162 INFO L273 TraceCheckUtils]: 3: Hoare triple {3629#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {3633#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:20:20,163 INFO L273 TraceCheckUtils]: 4: Hoare triple {3633#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {3613#false} is VALID [2019-01-18 14:20:20,163 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-18 14:20:20,164 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:20:20,229 INFO L273 TraceCheckUtils]: 4: Hoare triple {3637#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {3613#false} is VALID [2019-01-18 14:20:20,230 INFO L273 TraceCheckUtils]: 3: Hoare triple {3641#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {3637#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:20:20,232 INFO L273 TraceCheckUtils]: 2: Hoare triple {3645#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3641#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:20:20,233 INFO L273 TraceCheckUtils]: 1: Hoare triple {3649#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {3645#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:20:20,235 INFO L273 TraceCheckUtils]: 0: Hoare triple {3612#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {3649#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:20:20,236 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-18 14:20:20,256 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:20:20,256 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-18 14:20:20,256 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:20:20,257 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-18 14:20:20,257 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:20:20,257 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-18 14:20:20,272 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-18 14:20:20,272 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-18 14:20:20,273 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-18 14:20:20,273 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=70, Invalid=112, Unknown=0, NotChecked=0, Total=182 [2019-01-18 14:20:20,273 INFO L87 Difference]: Start difference. First operand 41 states and 152 transitions. Second operand 10 states. [2019-01-18 14:20:21,545 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:21,546 INFO L93 Difference]: Finished difference Result 71 states and 199 transitions. [2019-01-18 14:20:21,546 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-18 14:20:21,546 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-18 14:20:21,546 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:20:21,546 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:20:21,546 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 63 transitions. [2019-01-18 14:20:21,546 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:20:21,547 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 63 transitions. [2019-01-18 14:20:21,547 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 63 transitions. [2019-01-18 14:20:21,634 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-18 14:20:21,636 INFO L225 Difference]: With dead ends: 71 [2019-01-18 14:20:21,636 INFO L226 Difference]: Without dead ends: 70 [2019-01-18 14:20:21,637 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 56 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=90, Invalid=150, Unknown=0, NotChecked=0, Total=240 [2019-01-18 14:20:21,637 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 70 states. [2019-01-18 14:20:21,856 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 70 to 30. [2019-01-18 14:20:21,857 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:20:21,857 INFO L82 GeneralOperation]: Start isEquivalent. First operand 70 states. Second operand 30 states. [2019-01-18 14:20:21,857 INFO L74 IsIncluded]: Start isIncluded. First operand 70 states. Second operand 30 states. [2019-01-18 14:20:21,857 INFO L87 Difference]: Start difference. First operand 70 states. Second operand 30 states. [2019-01-18 14:20:21,859 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:21,859 INFO L93 Difference]: Finished difference Result 70 states and 196 transitions. [2019-01-18 14:20:21,859 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 196 transitions. [2019-01-18 14:20:21,860 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:21,860 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:21,860 INFO L74 IsIncluded]: Start isIncluded. First operand 30 states. Second operand 70 states. [2019-01-18 14:20:21,860 INFO L87 Difference]: Start difference. First operand 30 states. Second operand 70 states. [2019-01-18 14:20:21,862 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:21,862 INFO L93 Difference]: Finished difference Result 70 states and 196 transitions. [2019-01-18 14:20:21,862 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 196 transitions. [2019-01-18 14:20:21,862 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:21,862 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:21,862 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:20:21,863 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:20:21,863 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 30 states. [2019-01-18 14:20:21,863 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 30 states to 30 states and 97 transitions. [2019-01-18 14:20:21,863 INFO L78 Accepts]: Start accepts. Automaton has 30 states and 97 transitions. Word has length 5 [2019-01-18 14:20:21,863 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:20:21,864 INFO L480 AbstractCegarLoop]: Abstraction has 30 states and 97 transitions. [2019-01-18 14:20:21,864 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-18 14:20:21,864 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 97 transitions. [2019-01-18 14:20:21,864 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-18 14:20:21,864 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:20:21,864 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-18 14:20:21,865 INFO L423 AbstractCegarLoop]: === Iteration 19 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:20:21,865 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:21,865 INFO L82 PathProgramCache]: Analyzing trace with hash 28827822, now seen corresponding path program 1 times [2019-01-18 14:20:21,865 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:20:21,866 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:21,866 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-18 14:20:21,866 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:21,866 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:20:21,870 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:22,101 INFO L273 TraceCheckUtils]: 0: Hoare triple {3947#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {3949#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:20:22,102 INFO L273 TraceCheckUtils]: 1: Hoare triple {3949#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {3949#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:20:22,109 INFO L273 TraceCheckUtils]: 2: Hoare triple {3949#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} assume #memory_int[main_p1] >= 0; {3950#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-18 14:20:22,110 INFO L273 TraceCheckUtils]: 3: Hoare triple {3950#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p2] <= 0; {3950#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-18 14:20:22,110 INFO L273 TraceCheckUtils]: 4: Hoare triple {3950#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {3948#false} is VALID [2019-01-18 14:20:22,110 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-18 14:20:22,110 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-01-18 14:20:22,111 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2019-01-18 14:20:22,111 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-18 14:20:22,111 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-01-18 14:20:22,111 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:20:22,111 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-18 14:20:22,116 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-18 14:20:22,116 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-18 14:20:22,116 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-18 14:20:22,116 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2019-01-18 14:20:22,116 INFO L87 Difference]: Start difference. First operand 30 states and 97 transitions. Second operand 4 states. [2019-01-18 14:20:22,710 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:22,710 INFO L93 Difference]: Finished difference Result 36 states and 106 transitions. [2019-01-18 14:20:22,710 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-18 14:20:22,710 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-01-18 14:20:22,710 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:20:22,711 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-18 14:20:22,711 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 21 transitions. [2019-01-18 14:20:22,711 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-18 14:20:22,711 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 21 transitions. [2019-01-18 14:20:22,711 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 21 transitions. [2019-01-18 14:20:22,729 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 21 edges. 21 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:20:22,730 INFO L225 Difference]: With dead ends: 36 [2019-01-18 14:20:22,730 INFO L226 Difference]: Without dead ends: 33 [2019-01-18 14:20:22,731 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 3 GetRequests, 0 SyntacticMatches, 1 SemanticMatches, 2 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2019-01-18 14:20:22,731 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 33 states. [2019-01-18 14:20:22,965 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 33 to 29. [2019-01-18 14:20:22,966 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:20:22,966 INFO L82 GeneralOperation]: Start isEquivalent. First operand 33 states. Second operand 29 states. [2019-01-18 14:20:22,966 INFO L74 IsIncluded]: Start isIncluded. First operand 33 states. Second operand 29 states. [2019-01-18 14:20:22,966 INFO L87 Difference]: Start difference. First operand 33 states. Second operand 29 states. [2019-01-18 14:20:22,967 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:22,968 INFO L93 Difference]: Finished difference Result 33 states and 102 transitions. [2019-01-18 14:20:22,968 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 102 transitions. [2019-01-18 14:20:22,968 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:22,968 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:22,968 INFO L74 IsIncluded]: Start isIncluded. First operand 29 states. Second operand 33 states. [2019-01-18 14:20:22,969 INFO L87 Difference]: Start difference. First operand 29 states. Second operand 33 states. [2019-01-18 14:20:22,969 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:22,970 INFO L93 Difference]: Finished difference Result 33 states and 102 transitions. [2019-01-18 14:20:22,970 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 102 transitions. [2019-01-18 14:20:22,970 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:22,970 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:22,970 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:20:22,970 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:20:22,970 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 29 states. [2019-01-18 14:20:22,971 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 29 states to 29 states and 99 transitions. [2019-01-18 14:20:22,971 INFO L78 Accepts]: Start accepts. Automaton has 29 states and 99 transitions. Word has length 5 [2019-01-18 14:20:22,972 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:20:22,972 INFO L480 AbstractCegarLoop]: Abstraction has 29 states and 99 transitions. [2019-01-18 14:20:22,972 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-18 14:20:22,972 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 99 transitions. [2019-01-18 14:20:22,972 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-18 14:20:22,972 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:20:22,972 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-18 14:20:22,973 INFO L423 AbstractCegarLoop]: === Iteration 20 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:20:22,973 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:22,973 INFO L82 PathProgramCache]: Analyzing trace with hash 28818148, now seen corresponding path program 1 times [2019-01-18 14:20:22,973 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:20:22,973 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:22,974 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:22,974 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:22,974 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:20:22,978 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:23,146 INFO L273 TraceCheckUtils]: 0: Hoare triple {4120#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4122#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:20:23,147 INFO L273 TraceCheckUtils]: 1: Hoare triple {4122#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {4123#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:23,148 INFO L273 TraceCheckUtils]: 2: Hoare triple {4123#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4124#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:23,149 INFO L273 TraceCheckUtils]: 3: Hoare triple {4124#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {4124#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:23,149 INFO L273 TraceCheckUtils]: 4: Hoare triple {4124#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {4121#false} is VALID [2019-01-18 14:20:23,150 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-18 14:20:23,150 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:23,150 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:20:23,150 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-18 14:20:23,151 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [20], [21] [2019-01-18 14:20:23,152 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:20:23,152 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:20:23,167 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:20:23,167 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:20:23,167 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:23,167 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:20:23,167 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:23,167 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-18 14:20:23,177 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:23,177 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:20:23,181 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:23,188 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:23,188 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:20:23,212 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:20:23,219 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:23,220 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:20:23,230 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:23,233 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:23,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, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:20:23,248 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:23,249 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:23,250 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:23,251 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:20:23,255 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:23,273 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:23,285 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:23,295 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:23,311 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-18 14:20:23,311 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-18 14:20:23,320 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:23,321 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_96|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_96| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:20:23,321 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:20:23,411 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:23,414 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:23,417 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:23,419 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:23,421 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:23,425 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:23,427 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:23,427 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-18 14:20:23,451 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:23,862 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-18 14:20:23,863 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-18 14:20:23,874 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:23,874 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_97|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_97| ULTIMATE.start_main_p1))) (and (= (select |v_#memory_int_97| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_97| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_97| ULTIMATE.start_main_p3) 0) (= 0 .cse0) (= 0 (select |v_#memory_int_97| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:20:23,875 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:20:23,927 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:23,929 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:23,930 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:23,931 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:23,932 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:23,933 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:23,935 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:23,936 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:23,937 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:23,938 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-18 14:20:23,954 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:23,991 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-18 14:20:23,991 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-18 14:20:24,003 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:24,003 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_98|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_98| ULTIMATE.start_main_p2))) (and (= 0 (select |v_#memory_int_98| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_98| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 .cse0) (= 0 (select |v_#memory_int_98| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_98| ULTIMATE.start_main_p1) 1))) [2019-01-18 14:20:24,003 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:20:24,080 INFO L273 TraceCheckUtils]: 0: Hoare triple {4120#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4128#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:20:24,082 INFO L273 TraceCheckUtils]: 1: Hoare triple {4128#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {4132#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-18 14:20:24,084 INFO L273 TraceCheckUtils]: 2: Hoare triple {4132#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4136#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-18 14:20:24,085 INFO L273 TraceCheckUtils]: 3: Hoare triple {4136#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p1] >= 0; {4136#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-18 14:20:24,086 INFO L273 TraceCheckUtils]: 4: Hoare triple {4136#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p2] <= 0); {4121#false} is VALID [2019-01-18 14:20:24,087 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-18 14:20:24,087 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:20:24,117 INFO L273 TraceCheckUtils]: 4: Hoare triple {4124#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {4121#false} is VALID [2019-01-18 14:20:24,118 INFO L273 TraceCheckUtils]: 3: Hoare triple {4124#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {4124#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:24,119 INFO L273 TraceCheckUtils]: 2: Hoare triple {4149#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4124#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:24,120 INFO L273 TraceCheckUtils]: 1: Hoare triple {4153#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {4149#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} is VALID [2019-01-18 14:20:24,122 INFO L273 TraceCheckUtils]: 0: Hoare triple {4120#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4153#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-01-18 14:20:24,122 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-18 14:20:24,144 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:20:24,145 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-01-18 14:20:24,145 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:20:24,145 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-18 14:20:24,145 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:20:24,145 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:20:24,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-18 14:20:24,161 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:20:24,161 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:20:24,161 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=51, Unknown=0, NotChecked=0, Total=90 [2019-01-18 14:20:24,162 INFO L87 Difference]: Start difference. First operand 29 states and 99 transitions. Second operand 8 states. [2019-01-18 14:20:24,998 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:24,998 INFO L93 Difference]: Finished difference Result 44 states and 125 transitions. [2019-01-18 14:20:24,998 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-18 14:20:24,998 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-18 14:20:24,999 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:20:24,999 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:20:24,999 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 45 transitions. [2019-01-18 14:20:24,999 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:20:25,000 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 45 transitions. [2019-01-18 14:20:25,000 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 45 transitions. [2019-01-18 14:20:25,059 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:20:25,060 INFO L225 Difference]: With dead ends: 44 [2019-01-18 14:20:25,061 INFO L226 Difference]: Without dead ends: 43 [2019-01-18 14:20:25,061 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 4 SyntacticMatches, 0 SemanticMatches, 9 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 24 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=47, Invalid=63, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:20:25,062 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 43 states. [2019-01-18 14:20:25,337 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 43 to 32. [2019-01-18 14:20:25,337 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:20:25,337 INFO L82 GeneralOperation]: Start isEquivalent. First operand 43 states. Second operand 32 states. [2019-01-18 14:20:25,337 INFO L74 IsIncluded]: Start isIncluded. First operand 43 states. Second operand 32 states. [2019-01-18 14:20:25,337 INFO L87 Difference]: Start difference. First operand 43 states. Second operand 32 states. [2019-01-18 14:20:25,339 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:25,339 INFO L93 Difference]: Finished difference Result 43 states and 123 transitions. [2019-01-18 14:20:25,339 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 123 transitions. [2019-01-18 14:20:25,340 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:25,340 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:25,340 INFO L74 IsIncluded]: Start isIncluded. First operand 32 states. Second operand 43 states. [2019-01-18 14:20:25,340 INFO L87 Difference]: Start difference. First operand 32 states. Second operand 43 states. [2019-01-18 14:20:25,342 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:25,342 INFO L93 Difference]: Finished difference Result 43 states and 123 transitions. [2019-01-18 14:20:25,342 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 123 transitions. [2019-01-18 14:20:25,342 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:25,342 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:25,342 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:20:25,343 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:20:25,343 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 32 states. [2019-01-18 14:20:25,343 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 32 states to 32 states and 114 transitions. [2019-01-18 14:20:25,343 INFO L78 Accepts]: Start accepts. Automaton has 32 states and 114 transitions. Word has length 5 [2019-01-18 14:20:25,344 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:20:25,344 INFO L480 AbstractCegarLoop]: Abstraction has 32 states and 114 transitions. [2019-01-18 14:20:25,344 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:20:25,344 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 114 transitions. [2019-01-18 14:20:25,344 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-18 14:20:25,344 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:20:25,344 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-18 14:20:25,344 INFO L423 AbstractCegarLoop]: === Iteration 21 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:20:25,345 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:25,345 INFO L82 PathProgramCache]: Analyzing trace with hash 28821992, now seen corresponding path program 1 times [2019-01-18 14:20:25,345 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:20:25,345 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:25,346 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:25,346 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:25,346 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:20:25,351 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:25,485 INFO L273 TraceCheckUtils]: 0: Hoare triple {4362#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4364#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:20:25,486 INFO L273 TraceCheckUtils]: 1: Hoare triple {4364#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {4364#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:20:25,486 INFO L273 TraceCheckUtils]: 2: Hoare triple {4364#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {4365#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-18 14:20:25,487 INFO L273 TraceCheckUtils]: 3: Hoare triple {4365#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {4366#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:25,487 INFO L273 TraceCheckUtils]: 4: Hoare triple {4366#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {4363#false} is VALID [2019-01-18 14:20:25,487 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-18 14:20:25,488 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:25,488 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:20:25,488 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-18 14:20:25,488 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [20], [21] [2019-01-18 14:20:25,490 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:20:25,490 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:20:25,509 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:20:25,509 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:20:25,509 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:25,509 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:20:25,510 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:25,510 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-18 14:20:25,519 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:25,520 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:20:25,523 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:25,530 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:25,530 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:20:25,555 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:20:25,563 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:25,564 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:20:25,577 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:25,578 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:25,578 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:20:25,602 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:25,603 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:25,604 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:25,605 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:20:25,608 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:25,628 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:25,637 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:25,647 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:25,664 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-18 14:20:25,664 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-18 14:20:25,669 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:25,670 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_101|, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_101| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:20:25,670 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:20:25,748 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:25,749 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:25,750 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:25,751 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:25,752 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:25,753 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:25,754 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:25,755 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-18 14:20:25,761 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:25,793 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-18 14:20:25,794 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-18 14:20:25,828 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:25,828 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_102|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_102| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_102| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_102| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 0 .cse0) (= 0 (select |v_#memory_int_102| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_102| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:20:25,828 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:20:25,879 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:25,881 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:25,882 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:25,883 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:25,884 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:25,886 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:25,887 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:25,888 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:25,888 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:20:25,889 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-18 14:20:25,893 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:25,924 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-18 14:20:25,924 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-18 14:20:25,955 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:25,955 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_103|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_103| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_103| ULTIMATE.start_main_p3 (+ .cse0 1))) (= 0 (select |v_#memory_int_103| ULTIMATE.start_main_p4)) (= 1 (select |v_#memory_int_103| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (select |v_#memory_int_103| ULTIMATE.start_main_p2)) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:20:25,956 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:20:26,003 INFO L273 TraceCheckUtils]: 0: Hoare triple {4362#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4370#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:20:26,006 INFO L273 TraceCheckUtils]: 1: Hoare triple {4370#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {4374#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:20:26,008 INFO L273 TraceCheckUtils]: 2: Hoare triple {4374#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {4378#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:20:26,009 INFO L273 TraceCheckUtils]: 3: Hoare triple {4378#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {4378#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:20:26,011 INFO L273 TraceCheckUtils]: 4: Hoare triple {4378#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {4363#false} is VALID [2019-01-18 14:20:26,011 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-18 14:20:26,011 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:20:26,055 INFO L273 TraceCheckUtils]: 4: Hoare triple {4385#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {4363#false} is VALID [2019-01-18 14:20:26,055 INFO L273 TraceCheckUtils]: 3: Hoare triple {4385#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {4385#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:26,056 INFO L273 TraceCheckUtils]: 2: Hoare triple {4392#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {4385#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:26,058 INFO L273 TraceCheckUtils]: 1: Hoare triple {4396#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {4392#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:26,059 INFO L273 TraceCheckUtils]: 0: Hoare triple {4362#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4396#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:26,060 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-18 14:20:26,079 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:20:26,079 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-18 14:20:26,079 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:20:26,079 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-18 14:20:26,079 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:20:26,079 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:20:26,092 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-18 14:20:26,093 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:20:26,093 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:20:26,093 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=41, Invalid=69, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:20:26,093 INFO L87 Difference]: Start difference. First operand 32 states and 114 transitions. Second operand 8 states. [2019-01-18 14:20:27,081 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:27,081 INFO L93 Difference]: Finished difference Result 49 states and 142 transitions. [2019-01-18 14:20:27,082 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-18 14:20:27,082 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-18 14:20:27,082 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:20:27,082 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:20:27,082 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 40 transitions. [2019-01-18 14:20:27,083 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:20:27,083 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 40 transitions. [2019-01-18 14:20:27,083 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 40 transitions. [2019-01-18 14:20:27,133 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 40 edges. 40 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:20:27,135 INFO L225 Difference]: With dead ends: 49 [2019-01-18 14:20:27,135 INFO L226 Difference]: Without dead ends: 48 [2019-01-18 14:20:27,135 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 2 SyntacticMatches, 1 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 30 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=59, Invalid=97, Unknown=0, NotChecked=0, Total=156 [2019-01-18 14:20:27,135 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 48 states. [2019-01-18 14:20:27,422 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 48 to 34. [2019-01-18 14:20:27,422 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:20:27,423 INFO L82 GeneralOperation]: Start isEquivalent. First operand 48 states. Second operand 34 states. [2019-01-18 14:20:27,423 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand 34 states. [2019-01-18 14:20:27,423 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 34 states. [2019-01-18 14:20:27,424 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:27,425 INFO L93 Difference]: Finished difference Result 48 states and 140 transitions. [2019-01-18 14:20:27,425 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 140 transitions. [2019-01-18 14:20:27,425 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:27,425 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:27,425 INFO L74 IsIncluded]: Start isIncluded. First operand 34 states. Second operand 48 states. [2019-01-18 14:20:27,425 INFO L87 Difference]: Start difference. First operand 34 states. Second operand 48 states. [2019-01-18 14:20:27,426 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:27,426 INFO L93 Difference]: Finished difference Result 48 states and 140 transitions. [2019-01-18 14:20:27,427 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 140 transitions. [2019-01-18 14:20:27,427 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:27,427 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:27,427 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:20:27,427 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:20:27,427 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 34 states. [2019-01-18 14:20:27,428 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 34 states to 34 states and 124 transitions. [2019-01-18 14:20:27,428 INFO L78 Accepts]: Start accepts. Automaton has 34 states and 124 transitions. Word has length 5 [2019-01-18 14:20:27,429 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:20:27,429 INFO L480 AbstractCegarLoop]: Abstraction has 34 states and 124 transitions. [2019-01-18 14:20:27,429 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:20:27,429 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states and 124 transitions. [2019-01-18 14:20:27,429 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-18 14:20:27,429 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:20:27,429 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-18 14:20:27,430 INFO L423 AbstractCegarLoop]: === Iteration 22 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:20:27,430 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:27,430 INFO L82 PathProgramCache]: Analyzing trace with hash 28933468, now seen corresponding path program 2 times [2019-01-18 14:20:27,430 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:20:27,431 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:27,431 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:27,431 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:27,431 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:20:27,437 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:27,876 INFO L273 TraceCheckUtils]: 0: Hoare triple {4629#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4631#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-18 14:20:27,878 INFO L273 TraceCheckUtils]: 1: Hoare triple {4631#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4632#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-18 14:20:27,878 INFO L273 TraceCheckUtils]: 2: Hoare triple {4632#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {4633#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-18 14:20:27,879 INFO L273 TraceCheckUtils]: 3: Hoare triple {4633#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume #memory_int[main_p1] >= 0; {4633#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-18 14:20:27,879 INFO L273 TraceCheckUtils]: 4: Hoare triple {4633#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume !(#memory_int[main_p2] <= 0); {4630#false} is VALID [2019-01-18 14:20:27,879 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-18 14:20:27,880 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:27,880 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:20:27,880 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-18 14:20:27,880 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-18 14:20:27,880 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:27,880 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-18 14:20:27,891 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-18 14:20:27,891 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-18 14:20:27,909 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 2 check-sat command(s) [2019-01-18 14:20:27,909 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-18 14:20:27,916 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:27,916 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:20:27,944 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:20:27,951 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:27,952 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:20:27,965 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:27,967 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:27,968 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:20:27,981 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:27,982 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:27,983 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:27,984 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:20:27,987 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:28,005 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:28,015 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:28,024 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:28,042 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-18 14:20:28,042 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-18 14:20:28,048 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:28,049 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_106|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_106| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:20:28,049 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:20:28,524 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:28,526 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:28,528 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:28,530 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:28,532 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:28,534 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:28,534 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:28,536 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-18 14:20:28,543 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:28,579 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-18 14:20:28,580 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-18 14:20:28,586 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:28,587 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_107|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_107| ULTIMATE.start_main_p2))) (and (= 0 (select |v_#memory_int_107| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_107| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_107| ULTIMATE.start_main_p4)) (= .cse0 0) (= 0 (select |v_#memory_int_107| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:20:28,587 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:20:28,690 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:28,692 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:28,694 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:28,696 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:28,698 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:28,700 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:28,702 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:28,705 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:28,707 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:28,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, 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-18 14:20:28,712 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:28,755 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-18 14:20:28,756 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-18 14:20:30,771 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:30,771 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_108|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_108| ULTIMATE.start_main_p1))) (and (= 0 .cse0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_108| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (+ (select |v_#memory_int_108| ULTIMATE.start_main_p2) 1)) (= 0 (select |v_#memory_int_108| ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_108| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:20:30,771 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-18 14:20:30,832 INFO L273 TraceCheckUtils]: 0: Hoare triple {4629#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4637#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:20:30,834 INFO L273 TraceCheckUtils]: 1: Hoare triple {4637#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4641#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:20:30,836 INFO L273 TraceCheckUtils]: 2: Hoare triple {4641#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {4645#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-18 14:20:30,837 INFO L273 TraceCheckUtils]: 3: Hoare triple {4645#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume #memory_int[main_p1] >= 0; {4645#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-18 14:20:30,837 INFO L273 TraceCheckUtils]: 4: Hoare triple {4645#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume !(#memory_int[main_p2] <= 0); {4630#false} is VALID [2019-01-18 14:20:30,838 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-18 14:20:30,838 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:20:30,876 INFO L273 TraceCheckUtils]: 4: Hoare triple {4652#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {4630#false} is VALID [2019-01-18 14:20:30,877 INFO L273 TraceCheckUtils]: 3: Hoare triple {4652#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {4652#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:30,881 INFO L273 TraceCheckUtils]: 2: Hoare triple {4659#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {4652#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:30,882 INFO L273 TraceCheckUtils]: 1: Hoare triple {4663#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4659#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:30,883 INFO L273 TraceCheckUtils]: 0: Hoare triple {4629#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4663#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:30,884 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-18 14:20:30,903 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:20:30,903 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-18 14:20:30,903 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:20:30,904 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-18 14:20:30,904 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:20:30,904 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:20:30,918 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-18 14:20:30,919 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:20:30,919 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:20:30,919 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:20:30,919 INFO L87 Difference]: Start difference. First operand 34 states and 124 transitions. Second operand 8 states. [2019-01-18 14:20:32,330 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:32,330 INFO L93 Difference]: Finished difference Result 58 states and 161 transitions. [2019-01-18 14:20:32,330 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-18 14:20:32,331 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-18 14:20:32,331 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:20:32,331 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:20:32,331 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 52 transitions. [2019-01-18 14:20:32,331 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:20:32,332 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 52 transitions. [2019-01-18 14:20:32,332 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 52 transitions. [2019-01-18 14:20:32,406 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-18 14:20:32,407 INFO L225 Difference]: With dead ends: 58 [2019-01-18 14:20:32,407 INFO L226 Difference]: Without dead ends: 57 [2019-01-18 14:20:32,408 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 3 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-01-18 14:20:32,408 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 57 states. [2019-01-18 14:20:32,889 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 57 to 36. [2019-01-18 14:20:32,889 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:20:32,890 INFO L82 GeneralOperation]: Start isEquivalent. First operand 57 states. Second operand 36 states. [2019-01-18 14:20:32,890 INFO L74 IsIncluded]: Start isIncluded. First operand 57 states. Second operand 36 states. [2019-01-18 14:20:32,890 INFO L87 Difference]: Start difference. First operand 57 states. Second operand 36 states. [2019-01-18 14:20:32,892 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:32,892 INFO L93 Difference]: Finished difference Result 57 states and 159 transitions. [2019-01-18 14:20:32,892 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 159 transitions. [2019-01-18 14:20:32,892 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:32,892 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:32,892 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 57 states. [2019-01-18 14:20:32,892 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 57 states. [2019-01-18 14:20:32,893 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:32,893 INFO L93 Difference]: Finished difference Result 57 states and 159 transitions. [2019-01-18 14:20:32,894 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 159 transitions. [2019-01-18 14:20:32,894 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:32,894 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:32,894 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:20:32,894 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:20:32,894 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 36 states. [2019-01-18 14:20:32,895 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 36 states to 36 states and 134 transitions. [2019-01-18 14:20:32,895 INFO L78 Accepts]: Start accepts. Automaton has 36 states and 134 transitions. Word has length 5 [2019-01-18 14:20:32,895 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:20:32,895 INFO L480 AbstractCegarLoop]: Abstraction has 36 states and 134 transitions. [2019-01-18 14:20:32,895 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:20:32,895 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 134 transitions. [2019-01-18 14:20:32,895 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-18 14:20:32,896 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:20:32,896 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-18 14:20:32,896 INFO L423 AbstractCegarLoop]: === Iteration 23 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:20:32,896 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:32,896 INFO L82 PathProgramCache]: Analyzing trace with hash 28941156, now seen corresponding path program 1 times [2019-01-18 14:20:32,896 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:20:32,897 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:32,897 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-18 14:20:32,897 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:32,897 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:20:32,901 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:33,030 INFO L273 TraceCheckUtils]: 0: Hoare triple {4928#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4930#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-18 14:20:33,032 INFO L273 TraceCheckUtils]: 1: Hoare triple {4930#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4931#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-18 14:20:33,034 INFO L273 TraceCheckUtils]: 2: Hoare triple {4931#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {4932#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-18 14:20:33,036 INFO L273 TraceCheckUtils]: 3: Hoare triple {4932#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume #memory_int[main_p1] >= 0; {4932#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-18 14:20:33,036 INFO L273 TraceCheckUtils]: 4: Hoare triple {4932#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume !(#memory_int[main_p2] <= 0); {4929#false} is VALID [2019-01-18 14:20:33,037 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-18 14:20:33,037 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:33,037 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:20:33,037 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-18 14:20:33,037 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [20], [21] [2019-01-18 14:20:33,038 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:20:33,038 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:20:33,080 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:20:33,080 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:20:33,080 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:33,080 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:20:33,080 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:33,081 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 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-18 14:20:33,089 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:33,090 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:20:33,094 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:33,098 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:33,098 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:20:33,111 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:20:33,117 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-18 14:20:33,127 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:33,128 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-01-18 14:20:33,145 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:33,146 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:33,147 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-01-18 14:20:33,148 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:33,161 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:33,170 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:33,179 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:33,194 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-18 14:20:33,194 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:22, output treesize:27 [2019-01-18 14:20:33,199 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:33,199 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_111|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_111| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:20:33,199 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:20:33,250 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:33,251 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:33,253 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:33,254 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:33,255 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 34 [2019-01-18 14:20:33,257 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:33,276 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-18 14:20:33,276 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-18 14:20:33,285 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:33,285 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_112|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_112| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_112| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_112| ULTIMATE.start_main_p3) 0) (= |#memory_int| (store |v_#memory_int_112| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:20:33,286 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:20:33,332 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:33,333 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:33,334 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:33,335 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:33,336 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:33,337 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:33,338 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-18 14:20:33,341 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:33,364 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-18 14:20:33,365 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:34, output treesize:24 [2019-01-18 14:20:33,860 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:33,860 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_113|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_113| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_113| ULTIMATE.start_main_p2) 1)) (= (store |v_#memory_int_113| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= .cse0 0) (= (select |v_#memory_int_113| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:20:33,860 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-18 14:20:33,928 INFO L273 TraceCheckUtils]: 0: Hoare triple {4928#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4936#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:20:33,930 INFO L273 TraceCheckUtils]: 1: Hoare triple {4936#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4940#(and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:20:33,932 INFO L273 TraceCheckUtils]: 2: Hoare triple {4940#(and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {4944#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-18 14:20:33,933 INFO L273 TraceCheckUtils]: 3: Hoare triple {4944#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume #memory_int[main_p1] >= 0; {4944#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-18 14:20:33,934 INFO L273 TraceCheckUtils]: 4: Hoare triple {4944#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume !(#memory_int[main_p2] <= 0); {4929#false} is VALID [2019-01-18 14:20:33,934 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-18 14:20:33,934 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:20:33,986 INFO L273 TraceCheckUtils]: 4: Hoare triple {4951#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {4929#false} is VALID [2019-01-18 14:20:33,986 INFO L273 TraceCheckUtils]: 3: Hoare triple {4951#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {4951#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:33,987 INFO L273 TraceCheckUtils]: 2: Hoare triple {4958#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {4951#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:33,989 INFO L273 TraceCheckUtils]: 1: Hoare triple {4962#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4958#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:33,991 INFO L273 TraceCheckUtils]: 0: Hoare triple {4928#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4962#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:33,991 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-18 14:20:34,011 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:20:34,011 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-18 14:20:34,012 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:20:34,012 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-18 14:20:34,012 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:20:34,012 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:20:34,027 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-18 14:20:34,027 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:20:34,027 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:20:34,027 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:20:34,027 INFO L87 Difference]: Start difference. First operand 36 states and 134 transitions. Second operand 8 states. [2019-01-18 14:20:34,920 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:34,920 INFO L93 Difference]: Finished difference Result 59 states and 162 transitions. [2019-01-18 14:20:34,921 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-18 14:20:34,921 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-18 14:20:34,921 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:20:34,921 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:20:34,922 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 53 transitions. [2019-01-18 14:20:34,922 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:20:34,922 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 53 transitions. [2019-01-18 14:20:34,922 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 53 transitions. [2019-01-18 14:20:34,990 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-18 14:20:34,992 INFO L225 Difference]: With dead ends: 59 [2019-01-18 14:20:34,992 INFO L226 Difference]: Without dead ends: 58 [2019-01-18 14:20:34,992 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 12 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-01-18 14:20:34,992 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 58 states. [2019-01-18 14:20:35,372 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 58 to 37. [2019-01-18 14:20:35,372 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:20:35,372 INFO L82 GeneralOperation]: Start isEquivalent. First operand 58 states. Second operand 37 states. [2019-01-18 14:20:35,372 INFO L74 IsIncluded]: Start isIncluded. First operand 58 states. Second operand 37 states. [2019-01-18 14:20:35,372 INFO L87 Difference]: Start difference. First operand 58 states. Second operand 37 states. [2019-01-18 14:20:35,374 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:35,375 INFO L93 Difference]: Finished difference Result 58 states and 160 transitions. [2019-01-18 14:20:35,375 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 160 transitions. [2019-01-18 14:20:35,375 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:35,375 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:35,375 INFO L74 IsIncluded]: Start isIncluded. First operand 37 states. Second operand 58 states. [2019-01-18 14:20:35,375 INFO L87 Difference]: Start difference. First operand 37 states. Second operand 58 states. [2019-01-18 14:20:35,377 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:35,377 INFO L93 Difference]: Finished difference Result 58 states and 160 transitions. [2019-01-18 14:20:35,377 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 160 transitions. [2019-01-18 14:20:35,377 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:35,377 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:35,378 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:20:35,378 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:20:35,378 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 37 states. [2019-01-18 14:20:35,379 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 37 states to 37 states and 139 transitions. [2019-01-18 14:20:35,379 INFO L78 Accepts]: Start accepts. Automaton has 37 states and 139 transitions. Word has length 5 [2019-01-18 14:20:35,379 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:20:35,379 INFO L480 AbstractCegarLoop]: Abstraction has 37 states and 139 transitions. [2019-01-18 14:20:35,379 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:20:35,379 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 139 transitions. [2019-01-18 14:20:35,380 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-18 14:20:35,380 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:20:35,380 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-18 14:20:35,380 INFO L423 AbstractCegarLoop]: === Iteration 24 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:20:35,380 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:35,380 INFO L82 PathProgramCache]: Analyzing trace with hash 29066150, now seen corresponding path program 1 times [2019-01-18 14:20:35,381 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:20:35,381 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:35,381 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:35,381 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:35,382 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:20:35,385 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:35,585 INFO L273 TraceCheckUtils]: 0: Hoare triple {5232#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {5234#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-18 14:20:35,595 INFO L273 TraceCheckUtils]: 1: Hoare triple {5234#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:20:35,595 INFO L273 TraceCheckUtils]: 2: Hoare triple {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:20:35,598 INFO L273 TraceCheckUtils]: 3: Hoare triple {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:20:35,598 INFO L273 TraceCheckUtils]: 4: Hoare triple {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {5233#false} is VALID [2019-01-18 14:20:35,598 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-18 14:20:35,598 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:35,599 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:20:35,599 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-18 14:20:35,599 INFO L207 CegarAbsIntRunner]: [0], [14], [20], [22], [23] [2019-01-18 14:20:35,600 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:20:35,600 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:20:35,617 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:20:35,617 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-18 14:20:35,617 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:35,617 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:20:35,617 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:35,617 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-18 14:20:35,625 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:35,625 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:20:35,629 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:35,632 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:35,632 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:20:35,642 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:20:35,648 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-18 14:20:35,656 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-01-18 14:20:35,667 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:35,668 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 1 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 25 [2019-01-18 14:20:35,670 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:35,679 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:35,688 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:35,697 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:35,708 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-18 14:20:35,708 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 4 variables, input treesize:19, output treesize:24 [2019-01-18 14:20:35,714 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:35,714 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_116|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_116| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|)) [2019-01-18 14:20:35,714 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:20:35,747 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:35,748 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:35,749 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 21 [2019-01-18 14:20:35,750 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:35,760 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-18 14:20:35,760 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:24, output treesize:14 [2019-01-18 14:20:35,765 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:35,765 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_117|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_117| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_117| ULTIMATE.start_main_p4)) (= (store |v_#memory_int_117| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 .cse0))) [2019-01-18 14:20:35,765 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:20:35,794 INFO L273 TraceCheckUtils]: 0: Hoare triple {5232#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {5239#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-18 14:20:35,796 INFO L273 TraceCheckUtils]: 1: Hoare triple {5239#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {5243#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-18 14:20:35,796 INFO L273 TraceCheckUtils]: 2: Hoare triple {5243#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p1] >= 0; {5243#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-18 14:20:35,797 INFO L273 TraceCheckUtils]: 3: Hoare triple {5243#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p2] <= 0; {5243#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-18 14:20:35,798 INFO L273 TraceCheckUtils]: 4: Hoare triple {5243#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p3] >= 0); {5233#false} is VALID [2019-01-18 14:20:35,798 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-18 14:20:35,799 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:20:35,811 INFO L273 TraceCheckUtils]: 4: Hoare triple {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {5233#false} is VALID [2019-01-18 14:20:35,811 INFO L273 TraceCheckUtils]: 3: Hoare triple {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:20:35,812 INFO L273 TraceCheckUtils]: 2: Hoare triple {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:20:35,813 INFO L273 TraceCheckUtils]: 1: Hoare triple {5262#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:20:35,814 INFO L273 TraceCheckUtils]: 0: Hoare triple {5232#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {5262#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1))} is VALID [2019-01-18 14:20:35,815 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-18 14:20:35,835 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-01-18 14:20:35,836 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 5 [2019-01-18 14:20:35,836 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-18 14:20:35,836 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-01-18 14:20:35,836 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:20:35,836 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-18 14:20:35,858 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-18 14:20:35,858 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-18 14:20:35,858 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-18 14:20:35,858 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=19, Invalid=23, Unknown=0, NotChecked=0, Total=42 [2019-01-18 14:20:35,858 INFO L87 Difference]: Start difference. First operand 37 states and 139 transitions. Second operand 4 states. [2019-01-18 14:20:36,755 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:36,755 INFO L93 Difference]: Finished difference Result 74 states and 262 transitions. [2019-01-18 14:20:36,755 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2019-01-18 14:20:36,756 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-01-18 14:20:36,756 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:20:36,756 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-18 14:20:36,756 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 32 transitions. [2019-01-18 14:20:36,756 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-18 14:20:36,757 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 32 transitions. [2019-01-18 14:20:36,757 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 32 transitions. [2019-01-18 14:20:36,787 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 32 edges. 32 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:20:36,789 INFO L225 Difference]: With dead ends: 74 [2019-01-18 14:20:36,789 INFO L226 Difference]: Without dead ends: 73 [2019-01-18 14:20:36,790 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 5 SyntacticMatches, 0 SemanticMatches, 5 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 8 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=19, Invalid=23, Unknown=0, NotChecked=0, Total=42 [2019-01-18 14:20:36,790 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 73 states. [2019-01-18 14:20:37,593 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 73 to 59. [2019-01-18 14:20:37,593 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:20:37,594 INFO L82 GeneralOperation]: Start isEquivalent. First operand 73 states. Second operand 59 states. [2019-01-18 14:20:37,594 INFO L74 IsIncluded]: Start isIncluded. First operand 73 states. Second operand 59 states. [2019-01-18 14:20:37,594 INFO L87 Difference]: Start difference. First operand 73 states. Second operand 59 states. [2019-01-18 14:20:37,596 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:37,596 INFO L93 Difference]: Finished difference Result 73 states and 261 transitions. [2019-01-18 14:20:37,596 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 261 transitions. [2019-01-18 14:20:37,597 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:37,597 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:37,597 INFO L74 IsIncluded]: Start isIncluded. First operand 59 states. Second operand 73 states. [2019-01-18 14:20:37,597 INFO L87 Difference]: Start difference. First operand 59 states. Second operand 73 states. [2019-01-18 14:20:37,598 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:37,598 INFO L93 Difference]: Finished difference Result 73 states and 261 transitions. [2019-01-18 14:20:37,598 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 261 transitions. [2019-01-18 14:20:37,599 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:37,599 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:37,599 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:20:37,599 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:20:37,599 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 59 states. [2019-01-18 14:20:37,600 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 59 states to 59 states and 250 transitions. [2019-01-18 14:20:37,600 INFO L78 Accepts]: Start accepts. Automaton has 59 states and 250 transitions. Word has length 5 [2019-01-18 14:20:37,600 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:20:37,600 INFO L480 AbstractCegarLoop]: Abstraction has 59 states and 250 transitions. [2019-01-18 14:20:37,601 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-18 14:20:37,601 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 250 transitions. [2019-01-18 14:20:37,601 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-18 14:20:37,601 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:20:37,601 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-18 14:20:37,601 INFO L423 AbstractCegarLoop]: === Iteration 25 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:20:37,601 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:37,601 INFO L82 PathProgramCache]: Analyzing trace with hash 29052506, now seen corresponding path program 1 times [2019-01-18 14:20:37,602 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:20:37,602 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:37,602 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:37,602 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:37,602 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:20:37,607 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:37,992 INFO L273 TraceCheckUtils]: 0: Hoare triple {5638#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {5640#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (<= (+ ULTIMATE.start_main_p1 3) ULTIMATE.start_main_p4) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:20:37,993 INFO L273 TraceCheckUtils]: 1: Hoare triple {5640#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (<= (+ ULTIMATE.start_main_p1 3) ULTIMATE.start_main_p4) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {5641#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (<= (+ ULTIMATE.start_main_p1 3) ULTIMATE.start_main_p4))} is VALID [2019-01-18 14:20:37,994 INFO L273 TraceCheckUtils]: 2: Hoare triple {5641#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (<= (+ ULTIMATE.start_main_p1 3) ULTIMATE.start_main_p4))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {5642#(and (<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (<= (+ ULTIMATE.start_main_p1 3) ULTIMATE.start_main_p4))} is VALID [2019-01-18 14:20:37,995 INFO L273 TraceCheckUtils]: 3: Hoare triple {5642#(and (<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (<= (+ ULTIMATE.start_main_p1 3) ULTIMATE.start_main_p4))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {5643#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:20:37,995 INFO L273 TraceCheckUtils]: 4: Hoare triple {5643#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {5639#false} is VALID [2019-01-18 14:20:37,996 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-18 14:20:37,996 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:37,996 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:20:37,996 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-18 14:20:37,997 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [16], [19] [2019-01-18 14:20:37,999 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:20:37,999 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:20:38,009 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:20:38,009 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-18 14:20:38,009 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:38,009 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:20:38,010 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:38,010 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-18 14:20:38,019 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:38,019 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:20:38,023 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:38,026 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:38,027 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:20:38,040 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:20:38,045 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,045 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:20:38,054 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,055 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,056 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:20:38,067 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,069 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,070 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,071 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:20:38,073 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:38,092 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:38,101 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:38,109 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:38,124 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-18 14:20:38,125 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-18 14:20:38,131 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:38,132 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_119|, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_119| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:20:38,132 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:20:38,176 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,177 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,177 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,178 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,180 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,181 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,182 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,183 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-18 14:20:38,187 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:38,215 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-18 14:20:38,215 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-18 14:20:38,225 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:38,225 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_120|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_120| ULTIMATE.start_main_p3))) (and (= (select |v_#memory_int_120| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_120| ULTIMATE.start_main_p3 (+ .cse0 1))) (= 0 .cse0) (= (select |v_#memory_int_120| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_120| ULTIMATE.start_main_p4) 0))) [2019-01-18 14:20:38,225 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:20:38,267 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,269 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,270 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,271 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,273 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,274 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,275 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,276 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,277 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:20:38,278 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 59 [2019-01-18 14:20:38,281 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:38,333 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-18 14:20:38,333 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-18 14:20:38,347 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:38,347 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_121|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_121| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_121| ULTIMATE.start_main_p2) 0) (= |#memory_int| (store |v_#memory_int_121| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 1 (select |v_#memory_int_121| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (select |v_#memory_int_121| ULTIMATE.start_main_p4)))) [2019-01-18 14:20:38,348 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:20:38,401 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,403 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,404 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,405 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,406 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,407 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,408 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,410 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,411 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:38,412 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-18 14:20:38,414 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:38,448 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-18 14:20:38,448 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-18 14:20:40,628 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:40,628 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_122|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_122| ULTIMATE.start_main_p4))) (and (= 1 (select |v_#memory_int_122| ULTIMATE.start_main_p3)) (= (store |v_#memory_int_122| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_122| ULTIMATE.start_main_p1) 1) (= 0 .cse0) (= (select |v_#memory_int_122| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:20:40,628 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:20:40,684 INFO L273 TraceCheckUtils]: 0: Hoare triple {5638#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {5647#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:20:40,687 INFO L273 TraceCheckUtils]: 1: Hoare triple {5647#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {5651#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:20:40,690 INFO L273 TraceCheckUtils]: 2: Hoare triple {5651#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {5655#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:20:40,693 INFO L273 TraceCheckUtils]: 3: Hoare triple {5655#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {5659#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:20:40,694 INFO L273 TraceCheckUtils]: 4: Hoare triple {5659#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {5639#false} is VALID [2019-01-18 14:20:40,694 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-18 14:20:40,694 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:20:40,744 INFO L273 TraceCheckUtils]: 4: Hoare triple {5643#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {5639#false} is VALID [2019-01-18 14:20:40,745 INFO L273 TraceCheckUtils]: 3: Hoare triple {5666#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {5643#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:20:40,746 INFO L273 TraceCheckUtils]: 2: Hoare triple {5670#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {5666#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:20:40,748 INFO L273 TraceCheckUtils]: 1: Hoare triple {5674#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {5670#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:20:40,750 INFO L273 TraceCheckUtils]: 0: Hoare triple {5638#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {5674#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:20:40,750 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 5 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:20:40,769 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:20:40,769 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-18 14:20:40,769 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:20:40,770 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-18 14:20:40,770 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:20:40,770 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-18 14:20:40,786 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-18 14:20:40,787 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-18 14:20:40,787 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-18 14:20:40,787 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=66, Invalid=90, Unknown=0, NotChecked=0, Total=156 [2019-01-18 14:20:40,787 INFO L87 Difference]: Start difference. First operand 59 states and 250 transitions. Second operand 10 states. [2019-01-18 14:20:42,407 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:42,408 INFO L93 Difference]: Finished difference Result 105 states and 359 transitions. [2019-01-18 14:20:42,408 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-18 14:20:42,408 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-18 14:20:42,408 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:20:42,408 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:20:42,408 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 63 transitions. [2019-01-18 14:20:42,409 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:20:42,409 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 63 transitions. [2019-01-18 14:20:42,409 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 63 transitions. [2019-01-18 14:20:42,507 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-18 14:20:42,509 INFO L225 Difference]: With dead ends: 105 [2019-01-18 14:20:42,509 INFO L226 Difference]: Without dead ends: 97 [2019-01-18 14:20:42,509 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 53 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=84, Invalid=126, Unknown=0, NotChecked=0, Total=210 [2019-01-18 14:20:42,510 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 97 states. [2019-01-18 14:20:43,182 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 97 to 71. [2019-01-18 14:20:43,183 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:20:43,183 INFO L82 GeneralOperation]: Start isEquivalent. First operand 97 states. Second operand 71 states. [2019-01-18 14:20:43,183 INFO L74 IsIncluded]: Start isIncluded. First operand 97 states. Second operand 71 states. [2019-01-18 14:20:43,183 INFO L87 Difference]: Start difference. First operand 97 states. Second operand 71 states. [2019-01-18 14:20:43,186 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:43,186 INFO L93 Difference]: Finished difference Result 97 states and 344 transitions. [2019-01-18 14:20:43,186 INFO L276 IsEmpty]: Start isEmpty. Operand 97 states and 344 transitions. [2019-01-18 14:20:43,186 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:43,186 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:43,187 INFO L74 IsIncluded]: Start isIncluded. First operand 71 states. Second operand 97 states. [2019-01-18 14:20:43,187 INFO L87 Difference]: Start difference. First operand 71 states. Second operand 97 states. [2019-01-18 14:20:43,189 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:43,189 INFO L93 Difference]: Finished difference Result 97 states and 344 transitions. [2019-01-18 14:20:43,189 INFO L276 IsEmpty]: Start isEmpty. Operand 97 states and 344 transitions. [2019-01-18 14:20:43,189 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:43,190 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:43,190 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:20:43,190 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:20:43,190 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 71 states. [2019-01-18 14:20:43,192 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 71 states to 71 states and 308 transitions. [2019-01-18 14:20:43,192 INFO L78 Accepts]: Start accepts. Automaton has 71 states and 308 transitions. Word has length 5 [2019-01-18 14:20:43,192 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:20:43,192 INFO L480 AbstractCegarLoop]: Abstraction has 71 states and 308 transitions. [2019-01-18 14:20:43,192 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-18 14:20:43,192 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 308 transitions. [2019-01-18 14:20:43,193 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-18 14:20:43,193 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:20:43,193 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1] [2019-01-18 14:20:43,193 INFO L423 AbstractCegarLoop]: === Iteration 26 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:20:43,194 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:43,194 INFO L82 PathProgramCache]: Analyzing trace with hash 902776598, now seen corresponding path program 1 times [2019-01-18 14:20:43,194 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:20:43,194 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:43,195 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:43,195 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:43,195 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:20:43,198 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:43,334 INFO L273 TraceCheckUtils]: 0: Hoare triple {6172#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {6174#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:20:43,336 INFO L273 TraceCheckUtils]: 1: Hoare triple {6174#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6174#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:20:43,337 INFO L273 TraceCheckUtils]: 2: Hoare triple {6174#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6175#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-18 14:20:43,337 INFO L273 TraceCheckUtils]: 3: Hoare triple {6175#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p1] >= 0; {6175#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-18 14:20:43,338 INFO L273 TraceCheckUtils]: 4: Hoare triple {6175#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p2] <= 0; {6175#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-18 14:20:43,338 INFO L273 TraceCheckUtils]: 5: Hoare triple {6175#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {6173#false} is VALID [2019-01-18 14:20:43,339 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-18 14:20:43,339 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:43,339 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:20:43,340 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-18 14:20:43,340 INFO L207 CegarAbsIntRunner]: [0], [16], [20], [22], [23] [2019-01-18 14:20:43,342 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:20:43,342 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:20:43,362 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:20:43,362 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-18 14:20:43,362 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:43,362 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:20:43,363 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:43,363 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 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-18 14:20:43,371 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:43,372 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:20:43,375 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:43,379 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:43,379 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:20:43,389 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:20:43,395 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-18 14:20:43,408 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-01-18 14:20:43,438 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:43,439 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 1 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 25 [2019-01-18 14:20:43,442 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:43,453 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:43,462 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:43,472 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:43,483 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-18 14:20:43,483 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:19, output treesize:24 [2019-01-18 14:20:43,487 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:43,487 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_126|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (= (store (store (store (store |v_#memory_int_126| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) [2019-01-18 14:20:43,487 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:20:43,522 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:43,523 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:43,524 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 15 [2019-01-18 14:20:43,526 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:43,535 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:43,535 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:24, output treesize:14 [2019-01-18 14:20:43,543 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:43,543 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_127|]. (let ((.cse0 (select |v_#memory_int_127| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_127| ULTIMATE.start_main_p3)) (= |#memory_int| (store |v_#memory_int_127| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= .cse0 0))) [2019-01-18 14:20:43,543 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-18 14:20:43,576 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:43,577 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:43,578 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:43,579 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:43,580 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 4 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 27 [2019-01-18 14:20:43,593 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:43,604 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-18 14:20:43,605 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:26, output treesize:14 [2019-01-18 14:20:43,620 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:43,621 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_128|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_128| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_128| ULTIMATE.start_main_p3)) (= (store |v_#memory_int_128| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (+ .cse0 1) 0))) [2019-01-18 14:20:43,621 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-18 14:20:43,656 INFO L273 TraceCheckUtils]: 0: Hoare triple {6172#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {6179#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:20:43,658 INFO L273 TraceCheckUtils]: 1: Hoare triple {6179#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6183#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:20:43,659 INFO L273 TraceCheckUtils]: 2: Hoare triple {6183#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6187#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))))} is VALID [2019-01-18 14:20:43,660 INFO L273 TraceCheckUtils]: 3: Hoare triple {6187#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))))} assume #memory_int[main_p1] >= 0; {6187#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))))} is VALID [2019-01-18 14:20:43,662 INFO L273 TraceCheckUtils]: 4: Hoare triple {6187#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))))} assume #memory_int[main_p2] <= 0; {6187#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))))} is VALID [2019-01-18 14:20:43,663 INFO L273 TraceCheckUtils]: 5: Hoare triple {6187#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))))} assume !(#memory_int[main_p3] >= 0); {6173#false} is VALID [2019-01-18 14:20:43,663 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-18 14:20:43,663 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:20:43,700 INFO L273 TraceCheckUtils]: 5: Hoare triple {6197#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {6173#false} is VALID [2019-01-18 14:20:43,700 INFO L273 TraceCheckUtils]: 4: Hoare triple {6197#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {6197#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:20:43,701 INFO L273 TraceCheckUtils]: 3: Hoare triple {6197#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {6197#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:20:43,702 INFO L273 TraceCheckUtils]: 2: Hoare triple {6207#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6197#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:20:43,703 INFO L273 TraceCheckUtils]: 1: Hoare triple {6211#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 2))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6207#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:20:43,705 INFO L273 TraceCheckUtils]: 0: Hoare triple {6172#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {6211#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 2))) ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:20:43,705 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-18 14:20:43,725 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:20:43,725 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 3, 3] total 8 [2019-01-18 14:20:43,725 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:20:43,725 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 6 [2019-01-18 14:20:43,725 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:20:43,725 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states. [2019-01-18 14:20:43,737 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-18 14:20:43,737 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2019-01-18 14:20:43,738 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2019-01-18 14:20:43,738 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=37, Invalid=53, Unknown=0, NotChecked=0, Total=90 [2019-01-18 14:20:43,738 INFO L87 Difference]: Start difference. First operand 71 states and 308 transitions. Second operand 7 states. [2019-01-18 14:20:45,153 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:45,153 INFO L93 Difference]: Finished difference Result 85 states and 324 transitions. [2019-01-18 14:20:45,154 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-18 14:20:45,154 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 6 [2019-01-18 14:20:45,154 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:20:45,154 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-01-18 14:20:45,154 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 42 transitions. [2019-01-18 14:20:45,154 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-01-18 14:20:45,154 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 42 transitions. [2019-01-18 14:20:45,155 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 42 transitions. [2019-01-18 14:20:45,202 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 42 edges. 42 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:20:45,204 INFO L225 Difference]: With dead ends: 85 [2019-01-18 14:20:45,204 INFO L226 Difference]: Without dead ends: 80 [2019-01-18 14:20:45,204 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 5 SyntacticMatches, 0 SemanticMatches, 9 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 25 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:20:45,205 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 80 states. [2019-01-18 14:20:45,936 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 80 to 71. [2019-01-18 14:20:45,936 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:20:45,936 INFO L82 GeneralOperation]: Start isEquivalent. First operand 80 states. Second operand 71 states. [2019-01-18 14:20:45,936 INFO L74 IsIncluded]: Start isIncluded. First operand 80 states. Second operand 71 states. [2019-01-18 14:20:45,936 INFO L87 Difference]: Start difference. First operand 80 states. Second operand 71 states. [2019-01-18 14:20:45,939 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:45,940 INFO L93 Difference]: Finished difference Result 80 states and 318 transitions. [2019-01-18 14:20:45,940 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 318 transitions. [2019-01-18 14:20:45,940 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:45,940 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:45,941 INFO L74 IsIncluded]: Start isIncluded. First operand 71 states. Second operand 80 states. [2019-01-18 14:20:45,941 INFO L87 Difference]: Start difference. First operand 71 states. Second operand 80 states. [2019-01-18 14:20:45,942 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:45,942 INFO L93 Difference]: Finished difference Result 80 states and 318 transitions. [2019-01-18 14:20:45,943 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 318 transitions. [2019-01-18 14:20:45,943 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:45,943 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:45,943 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:20:45,943 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:20:45,943 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 71 states. [2019-01-18 14:20:45,945 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 71 states to 71 states and 307 transitions. [2019-01-18 14:20:45,945 INFO L78 Accepts]: Start accepts. Automaton has 71 states and 307 transitions. Word has length 6 [2019-01-18 14:20:45,945 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:20:45,945 INFO L480 AbstractCegarLoop]: Abstraction has 71 states and 307 transitions. [2019-01-18 14:20:45,945 INFO L481 AbstractCegarLoop]: Interpolant automaton has 7 states. [2019-01-18 14:20:45,945 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 307 transitions. [2019-01-18 14:20:45,945 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-18 14:20:45,946 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:20:45,946 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-18 14:20:45,946 INFO L423 AbstractCegarLoop]: === Iteration 27 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:20:45,946 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:45,946 INFO L82 PathProgramCache]: Analyzing trace with hash 902478688, now seen corresponding path program 1 times [2019-01-18 14:20:45,946 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:20:45,947 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:45,947 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:45,947 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:45,947 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:20:45,951 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:46,087 INFO L273 TraceCheckUtils]: 0: Hoare triple {6651#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {6653#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:20:46,088 INFO L273 TraceCheckUtils]: 1: Hoare triple {6653#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6654#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:20:46,089 INFO L273 TraceCheckUtils]: 2: Hoare triple {6654#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {6655#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-18 14:20:46,089 INFO L273 TraceCheckUtils]: 3: Hoare triple {6655#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p1] >= 0; {6655#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-18 14:20:46,090 INFO L273 TraceCheckUtils]: 4: Hoare triple {6655#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p2] <= 0; {6655#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-18 14:20:46,091 INFO L273 TraceCheckUtils]: 5: Hoare triple {6655#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {6652#false} is VALID [2019-01-18 14:20:46,091 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-18 14:20:46,091 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:46,091 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:20:46,092 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-18 14:20:46,092 INFO L207 CegarAbsIntRunner]: [0], [6], [16], [20], [22], [23] [2019-01-18 14:20:46,093 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:20:46,093 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:20:46,109 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:20:46,109 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:20:46,109 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:46,110 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:20:46,110 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:46,110 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-18 14:20:46,118 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:46,118 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:20:46,123 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:46,125 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:46,126 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:20:46,145 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:20:46,160 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:46,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, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:20:46,179 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:46,181 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:46,182 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:20:46,196 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:46,197 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:46,198 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:46,199 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:20:46,202 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:46,222 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:46,233 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:46,243 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:46,259 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-18 14:20:46,259 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-18 14:20:46,265 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:46,265 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_131|, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_131| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:20:46,265 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:20:46,314 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:46,316 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:46,317 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:46,318 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:46,319 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:46,321 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:46,322 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:46,323 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-18 14:20:46,326 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:46,354 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-18 14:20:46,354 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-18 14:20:46,526 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:46,526 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_132|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_132| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_132| ULTIMATE.start_main_p1) 0) (= |#memory_int| (store |v_#memory_int_132| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= .cse0 0) (= (select |v_#memory_int_132| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_132| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:20:46,526 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:20:46,599 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:46,601 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:46,602 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:46,603 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:46,604 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:46,606 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:46,607 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:46,608 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:46,609 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:46,610 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-18 14:20:46,614 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:46,667 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-18 14:20:46,667 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-18 14:20:46,705 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:46,705 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_133|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_133| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_133| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_133| ULTIMATE.start_main_p4) 1)) (= |#memory_int| (store |v_#memory_int_133| ULTIMATE.start_main_p1 (+ .cse0 1))) (= .cse0 0) (= 0 (select |v_#memory_int_133| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:20:46,705 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:20:46,766 INFO L273 TraceCheckUtils]: 0: Hoare triple {6651#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {6659#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:20:46,768 INFO L273 TraceCheckUtils]: 1: Hoare triple {6659#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6663#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:20:46,770 INFO L273 TraceCheckUtils]: 2: Hoare triple {6663#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {6667#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:20:46,771 INFO L273 TraceCheckUtils]: 3: Hoare triple {6667#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p1] >= 0; {6667#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:20:46,772 INFO L273 TraceCheckUtils]: 4: Hoare triple {6667#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p2] <= 0; {6667#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:20:46,773 INFO L273 TraceCheckUtils]: 5: Hoare triple {6667#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume !(#memory_int[main_p3] >= 0); {6652#false} is VALID [2019-01-18 14:20:46,774 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-18 14:20:46,774 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:20:46,821 INFO L273 TraceCheckUtils]: 5: Hoare triple {6677#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {6652#false} is VALID [2019-01-18 14:20:46,821 INFO L273 TraceCheckUtils]: 4: Hoare triple {6677#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {6677#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:20:46,822 INFO L273 TraceCheckUtils]: 3: Hoare triple {6677#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {6677#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:20:46,823 INFO L273 TraceCheckUtils]: 2: Hoare triple {6687#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {6677#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:20:46,824 INFO L273 TraceCheckUtils]: 1: Hoare triple {6691#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6687#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:20:46,826 INFO L273 TraceCheckUtils]: 0: Hoare triple {6651#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {6691#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:20:46,827 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-18 14:20:46,846 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:20:46,846 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-18 14:20:46,846 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:20:46,847 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-18 14:20:46,847 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:20:46,847 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:20:46,863 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-18 14:20:46,864 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:20:46,864 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:20:46,864 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:20:46,864 INFO L87 Difference]: Start difference. First operand 71 states and 307 transitions. Second operand 8 states. [2019-01-18 14:20:48,336 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:48,336 INFO L93 Difference]: Finished difference Result 83 states and 322 transitions. [2019-01-18 14:20:48,336 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-18 14:20:48,336 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-18 14:20:48,337 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:20:48,337 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:20:48,337 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 38 transitions. [2019-01-18 14:20:48,337 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:20:48,337 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 38 transitions. [2019-01-18 14:20:48,337 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 38 transitions. [2019-01-18 14:20:48,390 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 38 edges. 38 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:20:48,392 INFO L225 Difference]: With dead ends: 83 [2019-01-18 14:20:48,392 INFO L226 Difference]: Without dead ends: 82 [2019-01-18 14:20:48,392 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 5 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-18 14:20:48,393 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 82 states. [2019-01-18 14:20:49,187 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 82 to 71. [2019-01-18 14:20:49,187 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:20:49,187 INFO L82 GeneralOperation]: Start isEquivalent. First operand 82 states. Second operand 71 states. [2019-01-18 14:20:49,187 INFO L74 IsIncluded]: Start isIncluded. First operand 82 states. Second operand 71 states. [2019-01-18 14:20:49,187 INFO L87 Difference]: Start difference. First operand 82 states. Second operand 71 states. [2019-01-18 14:20:49,189 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:49,189 INFO L93 Difference]: Finished difference Result 82 states and 320 transitions. [2019-01-18 14:20:49,189 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 320 transitions. [2019-01-18 14:20:49,189 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:49,190 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:49,190 INFO L74 IsIncluded]: Start isIncluded. First operand 71 states. Second operand 82 states. [2019-01-18 14:20:49,190 INFO L87 Difference]: Start difference. First operand 71 states. Second operand 82 states. [2019-01-18 14:20:49,192 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:49,192 INFO L93 Difference]: Finished difference Result 82 states and 320 transitions. [2019-01-18 14:20:49,192 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 320 transitions. [2019-01-18 14:20:49,192 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:49,192 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:49,192 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:20:49,192 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:20:49,193 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 71 states. [2019-01-18 14:20:49,194 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 71 states to 71 states and 307 transitions. [2019-01-18 14:20:49,194 INFO L78 Accepts]: Start accepts. Automaton has 71 states and 307 transitions. Word has length 6 [2019-01-18 14:20:49,194 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:20:49,194 INFO L480 AbstractCegarLoop]: Abstraction has 71 states and 307 transitions. [2019-01-18 14:20:49,194 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:20:49,194 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 307 transitions. [2019-01-18 14:20:49,195 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-18 14:20:49,195 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:20:49,195 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-18 14:20:49,195 INFO L423 AbstractCegarLoop]: === Iteration 28 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:20:49,195 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:49,195 INFO L82 PathProgramCache]: Analyzing trace with hash 902469014, now seen corresponding path program 1 times [2019-01-18 14:20:49,195 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:20:49,196 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:49,196 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:49,196 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:49,196 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:20:49,199 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:49,436 INFO L273 TraceCheckUtils]: 0: Hoare triple {7135#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {7137#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:20:49,437 INFO L273 TraceCheckUtils]: 1: Hoare triple {7137#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {7138#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:20:49,438 INFO L273 TraceCheckUtils]: 2: Hoare triple {7138#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {7138#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:20:49,440 INFO L273 TraceCheckUtils]: 3: Hoare triple {7138#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {7139#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-18 14:20:49,440 INFO L273 TraceCheckUtils]: 4: Hoare triple {7139#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {7140#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:49,441 INFO L273 TraceCheckUtils]: 5: Hoare triple {7140#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {7136#false} is VALID [2019-01-18 14:20:49,441 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-18 14:20:49,441 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:49,442 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:20:49,442 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-18 14:20:49,442 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [16], [20], [21] [2019-01-18 14:20:49,443 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:20:49,444 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:20:49,454 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:20:49,454 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-18 14:20:49,454 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:49,455 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:20:49,455 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:49,455 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-18 14:20:49,465 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:49,465 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:20:49,470 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:49,476 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:49,477 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:20:49,492 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:20:49,501 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,501 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:20:49,510 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,512 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,512 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:20:49,527 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,528 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,529 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,530 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:20:49,534 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:49,552 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:49,562 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:49,572 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:49,590 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-18 14:20:49,590 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-18 14:20:49,598 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:49,598 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_136|, ULTIMATE.start_main_p3]. (and (= (store (store (store (store |v_#memory_int_136| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:20:49,599 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:20:49,654 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,655 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,656 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,658 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,659 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,660 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,662 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,662 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-18 14:20:49,666 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:49,697 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-18 14:20:49,698 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-18 14:20:49,721 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:49,721 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_137|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_137| ULTIMATE.start_main_p4))) (and (= |#memory_int| (store |v_#memory_int_137| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_137| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_137| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_137| ULTIMATE.start_main_p3) 0) (= 0 .cse0))) [2019-01-18 14:20:49,722 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:20:49,799 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,801 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,802 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,804 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,805 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,806 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,807 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,809 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,810 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,811 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-18 14:20:49,815 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:49,851 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-18 14:20:49,851 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-18 14:20:49,877 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:49,878 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_138|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_138| ULTIMATE.start_main_p1))) (and (= .cse0 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_138| ULTIMATE.start_main_p3)) (= (+ (select |v_#memory_int_138| ULTIMATE.start_main_p4) 1) 0) (= |#memory_int| (store |v_#memory_int_138| ULTIMATE.start_main_p1 (+ .cse0 1))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (select |v_#memory_int_138| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:20:49,878 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:20:49,941 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,943 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,944 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,945 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,946 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,947 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,948 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,949 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,950 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:20:49,951 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:49,952 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 72 [2019-01-18 14:20:49,956 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:49,995 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-18 14:20:49,995 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:30 [2019-01-18 14:20:50,008 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:50,008 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_139|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_139| ULTIMATE.start_main_p2))) (and (= (select |v_#memory_int_139| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_139| ULTIMATE.start_main_p4) 1) 0) (= .cse0 0) (= (store |v_#memory_int_139| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |v_#memory_int_139| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:20:50,009 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:20:50,114 INFO L273 TraceCheckUtils]: 0: Hoare triple {7135#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {7144#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:20:50,116 INFO L273 TraceCheckUtils]: 1: Hoare triple {7144#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {7148#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-18 14:20:50,118 INFO L273 TraceCheckUtils]: 2: Hoare triple {7148#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {7152#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-18 14:20:50,121 INFO L273 TraceCheckUtils]: 3: Hoare triple {7152#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {7156#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-18 14:20:50,122 INFO L273 TraceCheckUtils]: 4: Hoare triple {7156#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume #memory_int[main_p1] >= 0; {7156#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-18 14:20:50,123 INFO L273 TraceCheckUtils]: 5: Hoare triple {7156#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume !(#memory_int[main_p2] <= 0); {7136#false} is VALID [2019-01-18 14:20:50,124 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-18 14:20:50,124 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:20:50,176 INFO L273 TraceCheckUtils]: 5: Hoare triple {7140#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {7136#false} is VALID [2019-01-18 14:20:50,177 INFO L273 TraceCheckUtils]: 4: Hoare triple {7140#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {7140#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:50,178 INFO L273 TraceCheckUtils]: 3: Hoare triple {7169#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {7140#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:50,179 INFO L273 TraceCheckUtils]: 2: Hoare triple {7173#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {7169#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} is VALID [2019-01-18 14:20:50,180 INFO L273 TraceCheckUtils]: 1: Hoare triple {7177#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {7173#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-01-18 14:20:50,182 INFO L273 TraceCheckUtils]: 0: Hoare triple {7135#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {7177#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-01-18 14:20:50,182 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-18 14:20:50,202 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:20:50,202 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-18 14:20:50,202 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:20:50,202 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-18 14:20:50,202 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:20:50,203 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-18 14:20:50,223 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-18 14:20:50,224 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-18 14:20:50,224 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-18 14:20:50,224 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=64, Invalid=92, Unknown=0, NotChecked=0, Total=156 [2019-01-18 14:20:50,224 INFO L87 Difference]: Start difference. First operand 71 states and 307 transitions. Second operand 10 states. [2019-01-18 14:20:52,254 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:52,254 INFO L93 Difference]: Finished difference Result 97 states and 346 transitions. [2019-01-18 14:20:52,254 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-18 14:20:52,254 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-18 14:20:52,254 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:20:52,255 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:20:52,256 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 56 transitions. [2019-01-18 14:20:52,256 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:20:52,257 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 56 transitions. [2019-01-18 14:20:52,257 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 56 transitions. [2019-01-18 14:20:52,352 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-18 14:20:52,355 INFO L225 Difference]: With dead ends: 97 [2019-01-18 14:20:52,355 INFO L226 Difference]: Without dead ends: 96 [2019-01-18 14:20:52,355 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 52 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=92, Invalid=148, Unknown=0, NotChecked=0, Total=240 [2019-01-18 14:20:52,356 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 96 states. [2019-01-18 14:20:53,166 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 96 to 71. [2019-01-18 14:20:53,167 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:20:53,167 INFO L82 GeneralOperation]: Start isEquivalent. First operand 96 states. Second operand 71 states. [2019-01-18 14:20:53,167 INFO L74 IsIncluded]: Start isIncluded. First operand 96 states. Second operand 71 states. [2019-01-18 14:20:53,167 INFO L87 Difference]: Start difference. First operand 96 states. Second operand 71 states. [2019-01-18 14:20:53,170 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:53,170 INFO L93 Difference]: Finished difference Result 96 states and 344 transitions. [2019-01-18 14:20:53,170 INFO L276 IsEmpty]: Start isEmpty. Operand 96 states and 344 transitions. [2019-01-18 14:20:53,170 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:53,171 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:53,171 INFO L74 IsIncluded]: Start isIncluded. First operand 71 states. Second operand 96 states. [2019-01-18 14:20:53,171 INFO L87 Difference]: Start difference. First operand 71 states. Second operand 96 states. [2019-01-18 14:20:53,174 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:53,174 INFO L93 Difference]: Finished difference Result 96 states and 344 transitions. [2019-01-18 14:20:53,174 INFO L276 IsEmpty]: Start isEmpty. Operand 96 states and 344 transitions. [2019-01-18 14:20:53,175 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:53,175 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:53,175 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:20:53,175 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:20:53,175 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 71 states. [2019-01-18 14:20:53,178 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 71 states to 71 states and 307 transitions. [2019-01-18 14:20:53,178 INFO L78 Accepts]: Start accepts. Automaton has 71 states and 307 transitions. Word has length 6 [2019-01-18 14:20:53,178 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:20:53,178 INFO L480 AbstractCegarLoop]: Abstraction has 71 states and 307 transitions. [2019-01-18 14:20:53,178 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-18 14:20:53,179 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 307 transitions. [2019-01-18 14:20:53,179 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-18 14:20:53,179 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:20:53,179 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-18 14:20:53,179 INFO L423 AbstractCegarLoop]: === Iteration 29 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:20:53,180 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:53,180 INFO L82 PathProgramCache]: Analyzing trace with hash 902472858, now seen corresponding path program 1 times [2019-01-18 14:20:53,180 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:20:53,180 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:53,181 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:53,181 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:53,181 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:20:53,185 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:53,539 INFO L273 TraceCheckUtils]: 0: Hoare triple {7668#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {7670#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:20:53,540 INFO L273 TraceCheckUtils]: 1: Hoare triple {7670#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {7671#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:20:53,541 INFO L273 TraceCheckUtils]: 2: Hoare triple {7671#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {7671#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:20:53,542 INFO L273 TraceCheckUtils]: 3: Hoare triple {7671#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {7672#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-18 14:20:53,543 INFO L273 TraceCheckUtils]: 4: Hoare triple {7672#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {7673#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:53,544 INFO L273 TraceCheckUtils]: 5: Hoare triple {7673#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {7669#false} is VALID [2019-01-18 14:20:53,544 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-18 14:20:53,544 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:53,544 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:20:53,545 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-18 14:20:53,545 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [16], [20], [21] [2019-01-18 14:20:53,546 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:20:53,546 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:20:53,567 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:20:53,568 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-18 14:20:53,568 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:53,568 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:20:53,568 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:53,568 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-18 14:20:53,580 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:53,580 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:20:53,585 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:53,601 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:53,602 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:20:53,625 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:20:53,640 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:53,641 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:20:53,652 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:53,653 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:53,654 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:20:53,670 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:53,671 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:53,672 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:53,673 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:20:53,678 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:53,697 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:53,709 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:53,718 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:53,735 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:53,735 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-18 14:20:53,740 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:53,740 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_143|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_143| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:20:53,740 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:20:53,800 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:53,801 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:53,803 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:53,804 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:53,805 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:53,806 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:53,808 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:53,809 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-18 14:20:53,813 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:53,842 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-18 14:20:53,843 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-18 14:20:54,054 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:54,054 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_144|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_144| ULTIMATE.start_main_p4))) (and (= 0 (select |v_#memory_int_144| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_144| ULTIMATE.start_main_p1) 0) (= |#memory_int| (store |v_#memory_int_144| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= 0 (select |v_#memory_int_144| ULTIMATE.start_main_p2)) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:20:54,055 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:20:54,169 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:54,171 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:54,173 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:54,177 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:54,179 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:54,181 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:54,183 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:54,185 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:54,187 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:54,187 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-18 14:20:54,189 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:54,237 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-18 14:20:54,237 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-18 14:20:54,259 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:54,259 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_145|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_145| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= |#memory_int| (store |v_#memory_int_145| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 0 (select |v_#memory_int_145| ULTIMATE.start_main_p3)) (= 0 (select |v_#memory_int_145| ULTIMATE.start_main_p2)) (= (+ (select |v_#memory_int_145| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:20:54,259 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:20:54,350 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:54,352 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:54,354 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:54,356 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:54,358 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:54,360 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:54,362 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:54,364 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:54,366 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:54,368 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:54,371 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:20:54,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 33 treesize of output 77 [2019-01-18 14:20:54,373 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:54,419 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-18 14:20:54,419 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-18 14:20:54,430 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:54,431 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_146|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_146| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_146| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_146| ULTIMATE.start_main_p1) 1) (= 0 (select |v_#memory_int_146| ULTIMATE.start_main_p2)) (= 0 (+ (select |v_#memory_int_146| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:20:54,431 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:20:54,508 INFO L273 TraceCheckUtils]: 0: Hoare triple {7668#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {7677#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:20:54,510 INFO L273 TraceCheckUtils]: 1: Hoare triple {7677#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {7681#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:20:54,512 INFO L273 TraceCheckUtils]: 2: Hoare triple {7681#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {7685#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:20:54,515 INFO L273 TraceCheckUtils]: 3: Hoare triple {7685#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {7689#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-18 14:20:54,516 INFO L273 TraceCheckUtils]: 4: Hoare triple {7689#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume #memory_int[main_p1] >= 0; {7689#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-18 14:20:54,517 INFO L273 TraceCheckUtils]: 5: Hoare triple {7689#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume !(#memory_int[main_p2] <= 0); {7669#false} is VALID [2019-01-18 14:20:54,517 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-18 14:20:54,518 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:20:54,579 INFO L273 TraceCheckUtils]: 5: Hoare triple {7696#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {7669#false} is VALID [2019-01-18 14:20:54,580 INFO L273 TraceCheckUtils]: 4: Hoare triple {7696#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {7696#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:54,581 INFO L273 TraceCheckUtils]: 3: Hoare triple {7703#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {7696#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:54,582 INFO L273 TraceCheckUtils]: 2: Hoare triple {7707#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {7703#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:54,584 INFO L273 TraceCheckUtils]: 1: Hoare triple {7711#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {7707#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:54,586 INFO L273 TraceCheckUtils]: 0: Hoare triple {7668#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {7711#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:20:54,586 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-18 14:20:54,606 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:20:54,606 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-18 14:20:54,606 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:20:54,607 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-18 14:20:54,607 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:20:54,607 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-18 14:20:54,624 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-18 14:20:54,624 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-18 14:20:54,624 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-18 14:20:54,625 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=65, Invalid=117, Unknown=0, NotChecked=0, Total=182 [2019-01-18 14:20:54,625 INFO L87 Difference]: Start difference. First operand 71 states and 307 transitions. Second operand 10 states. [2019-01-18 14:20:56,350 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:56,351 INFO L93 Difference]: Finished difference Result 102 states and 389 transitions. [2019-01-18 14:20:56,351 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-18 14:20:56,351 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-18 14:20:56,351 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:20:56,351 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:20:56,352 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 47 transitions. [2019-01-18 14:20:56,352 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:20:56,352 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 47 transitions. [2019-01-18 14:20:56,352 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 47 transitions. [2019-01-18 14:20:56,428 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 47 edges. 47 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:20:56,431 INFO L225 Difference]: With dead ends: 102 [2019-01-18 14:20:56,431 INFO L226 Difference]: Without dead ends: 101 [2019-01-18 14:20:56,432 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 2 SyntacticMatches, 1 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 61 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=98, Invalid=174, Unknown=0, NotChecked=0, Total=272 [2019-01-18 14:20:56,432 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 101 states. [2019-01-18 14:20:57,429 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 101 to 81. [2019-01-18 14:20:57,429 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:20:57,429 INFO L82 GeneralOperation]: Start isEquivalent. First operand 101 states. Second operand 81 states. [2019-01-18 14:20:57,429 INFO L74 IsIncluded]: Start isIncluded. First operand 101 states. Second operand 81 states. [2019-01-18 14:20:57,430 INFO L87 Difference]: Start difference. First operand 101 states. Second operand 81 states. [2019-01-18 14:20:57,433 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:57,433 INFO L93 Difference]: Finished difference Result 101 states and 386 transitions. [2019-01-18 14:20:57,433 INFO L276 IsEmpty]: Start isEmpty. Operand 101 states and 386 transitions. [2019-01-18 14:20:57,433 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:57,434 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:57,434 INFO L74 IsIncluded]: Start isIncluded. First operand 81 states. Second operand 101 states. [2019-01-18 14:20:57,434 INFO L87 Difference]: Start difference. First operand 81 states. Second operand 101 states. [2019-01-18 14:20:57,436 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:20:57,436 INFO L93 Difference]: Finished difference Result 101 states and 386 transitions. [2019-01-18 14:20:57,436 INFO L276 IsEmpty]: Start isEmpty. Operand 101 states and 386 transitions. [2019-01-18 14:20:57,437 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:20:57,437 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:20:57,437 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:20:57,437 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:20:57,437 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 81 states. [2019-01-18 14:20:57,439 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 81 states to 81 states and 357 transitions. [2019-01-18 14:20:57,440 INFO L78 Accepts]: Start accepts. Automaton has 81 states and 357 transitions. Word has length 6 [2019-01-18 14:20:57,440 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:20:57,440 INFO L480 AbstractCegarLoop]: Abstraction has 81 states and 357 transitions. [2019-01-18 14:20:57,440 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-18 14:20:57,440 INFO L276 IsEmpty]: Start isEmpty. Operand 81 states and 357 transitions. [2019-01-18 14:20:57,440 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-18 14:20:57,441 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:20:57,441 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-18 14:20:57,441 INFO L423 AbstractCegarLoop]: === Iteration 30 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:20:57,441 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:57,441 INFO L82 PathProgramCache]: Analyzing trace with hash 902592022, now seen corresponding path program 1 times [2019-01-18 14:20:57,441 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:20:57,442 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:57,442 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:57,442 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:20:57,442 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:20:57,445 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:57,669 WARN L181 SmtUtils]: Spent 163.00 ms on a formula simplification. DAG size of input: 30 DAG size of output: 17 [2019-01-18 14:20:57,746 INFO L273 TraceCheckUtils]: 0: Hoare triple {8246#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {8248#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:20:57,747 INFO L273 TraceCheckUtils]: 1: Hoare triple {8248#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {8249#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-18 14:20:57,748 INFO L273 TraceCheckUtils]: 2: Hoare triple {8249#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {8250#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-18 14:20:57,749 INFO L273 TraceCheckUtils]: 3: Hoare triple {8250#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {8251#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-18 14:20:57,750 INFO L273 TraceCheckUtils]: 4: Hoare triple {8251#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume #memory_int[main_p1] >= 0; {8251#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-18 14:20:57,751 INFO L273 TraceCheckUtils]: 5: Hoare triple {8251#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume !(#memory_int[main_p2] <= 0); {8247#false} is VALID [2019-01-18 14:20:57,751 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-18 14:20:57,751 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:57,751 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:20:57,752 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-18 14:20:57,752 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [16], [20], [21] [2019-01-18 14:20:57,753 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:20:57,753 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:20:57,763 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:20:57,763 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-18 14:20:57,763 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:20:57,764 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:20:57,764 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:20:57,764 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-18 14:20:57,773 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:20:57,773 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:20:57,778 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:57,786 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:20:57,786 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:20:57,802 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:20:57,809 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-18 14:20:57,818 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:57,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, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-01-18 14:20:57,832 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:57,833 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:57,834 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-01-18 14:20:57,837 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:57,851 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:57,860 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:57,870 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:20:57,882 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-18 14:20:57,883 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:22, output treesize:27 [2019-01-18 14:20:57,887 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:57,888 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_150|, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_150| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:20:57,888 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:20:57,939 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:57,940 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:57,941 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:57,943 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:20:57,944 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-18 14:20:57,946 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:20:57,962 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-18 14:20:57,963 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-18 14:20:59,978 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:20:59,979 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_151|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_151| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (select |v_#memory_int_151| ULTIMATE.start_main_p2) 0) (= 0 (select |v_#memory_int_151| ULTIMATE.start_main_p3)) (= |#memory_int| (store |v_#memory_int_151| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:20:59,979 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:21:00,053 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:00,054 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:00,056 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:00,057 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:00,057 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:21:00,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, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 41 [2019-01-18 14:21:00,062 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:00,080 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-18 14:21:00,080 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:34, output treesize:22 [2019-01-18 14:21:00,092 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:00,092 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_152|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_152| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_152| ULTIMATE.start_main_p4) 1)) (= |#memory_int| (store |v_#memory_int_152| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= .cse0 0) (= 0 (select |v_#memory_int_152| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:21:00,092 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:21:00,136 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:00,138 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:00,139 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:00,140 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:00,141 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:00,142 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:00,143 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 30 treesize of output 44 [2019-01-18 14:21:00,146 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:00,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-18 14:21:00,169 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:36, output treesize:26 [2019-01-18 14:21:00,177 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:00,177 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_153|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_153| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_153| ULTIMATE.start_main_p4) 1) 0) (= |#memory_int| (store |v_#memory_int_153| ULTIMATE.start_main_p3 (+ .cse0 1))) (= .cse0 0) (= (+ (select |v_#memory_int_153| ULTIMATE.start_main_p2) 1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:21:00,177 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-18 14:21:00,214 INFO L273 TraceCheckUtils]: 0: Hoare triple {8246#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {8255#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:21:00,216 INFO L273 TraceCheckUtils]: 1: Hoare triple {8255#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {8259#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:00,218 INFO L273 TraceCheckUtils]: 2: Hoare triple {8259#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {8263#(and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:00,219 INFO L273 TraceCheckUtils]: 3: Hoare triple {8263#(and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {8267#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-18 14:21:00,220 INFO L273 TraceCheckUtils]: 4: Hoare triple {8267#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume #memory_int[main_p1] >= 0; {8267#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-18 14:21:00,221 INFO L273 TraceCheckUtils]: 5: Hoare triple {8267#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume !(#memory_int[main_p2] <= 0); {8247#false} is VALID [2019-01-18 14:21:00,221 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-18 14:21:00,221 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:21:00,281 INFO L273 TraceCheckUtils]: 5: Hoare triple {8274#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {8247#false} is VALID [2019-01-18 14:21:00,286 INFO L273 TraceCheckUtils]: 4: Hoare triple {8274#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {8274#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:21:00,300 INFO L273 TraceCheckUtils]: 3: Hoare triple {8281#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {8274#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:21:00,301 INFO L273 TraceCheckUtils]: 2: Hoare triple {8285#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {8281#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:21:00,302 INFO L273 TraceCheckUtils]: 1: Hoare triple {8289#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {8285#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:21:00,303 INFO L273 TraceCheckUtils]: 0: Hoare triple {8246#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {8289#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:21:00,304 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 5 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:21:00,324 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:21:00,324 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-18 14:21:00,324 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:21:00,324 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-18 14:21:00,324 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:21:00,325 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-18 14:21:00,340 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-18 14:21:00,340 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-18 14:21:00,340 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-18 14:21:00,341 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=71, Invalid=111, Unknown=0, NotChecked=0, Total=182 [2019-01-18 14:21:00,341 INFO L87 Difference]: Start difference. First operand 81 states and 357 transitions. Second operand 10 states. [2019-01-18 14:21:02,280 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:21:02,280 INFO L93 Difference]: Finished difference Result 108 states and 386 transitions. [2019-01-18 14:21:02,280 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-18 14:21:02,280 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-18 14:21:02,280 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:21:02,280 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:21:02,281 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 57 transitions. [2019-01-18 14:21:02,281 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:21:02,281 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 57 transitions. [2019-01-18 14:21:02,282 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 57 transitions. [2019-01-18 14:21:02,606 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 57 edges. 57 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:21:02,609 INFO L225 Difference]: With dead ends: 108 [2019-01-18 14:21:02,609 INFO L226 Difference]: Without dead ends: 107 [2019-01-18 14:21:02,610 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 59 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=89, Invalid=151, Unknown=0, NotChecked=0, Total=240 [2019-01-18 14:21:02,610 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 107 states. [2019-01-18 14:21:03,350 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 107 to 77. [2019-01-18 14:21:03,350 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:21:03,350 INFO L82 GeneralOperation]: Start isEquivalent. First operand 107 states. Second operand 77 states. [2019-01-18 14:21:03,350 INFO L74 IsIncluded]: Start isIncluded. First operand 107 states. Second operand 77 states. [2019-01-18 14:21:03,350 INFO L87 Difference]: Start difference. First operand 107 states. Second operand 77 states. [2019-01-18 14:21:03,354 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:21:03,354 INFO L93 Difference]: Finished difference Result 107 states and 383 transitions. [2019-01-18 14:21:03,354 INFO L276 IsEmpty]: Start isEmpty. Operand 107 states and 383 transitions. [2019-01-18 14:21:03,354 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:21:03,355 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:21:03,355 INFO L74 IsIncluded]: Start isIncluded. First operand 77 states. Second operand 107 states. [2019-01-18 14:21:03,355 INFO L87 Difference]: Start difference. First operand 77 states. Second operand 107 states. [2019-01-18 14:21:03,357 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:21:03,357 INFO L93 Difference]: Finished difference Result 107 states and 383 transitions. [2019-01-18 14:21:03,357 INFO L276 IsEmpty]: Start isEmpty. Operand 107 states and 383 transitions. [2019-01-18 14:21:03,357 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:21:03,357 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:21:03,358 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:21:03,358 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:21:03,358 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 77 states. [2019-01-18 14:21:03,359 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 77 states to 77 states and 337 transitions. [2019-01-18 14:21:03,359 INFO L78 Accepts]: Start accepts. Automaton has 77 states and 337 transitions. Word has length 6 [2019-01-18 14:21:03,360 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:21:03,360 INFO L480 AbstractCegarLoop]: Abstraction has 77 states and 337 transitions. [2019-01-18 14:21:03,360 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-18 14:21:03,360 INFO L276 IsEmpty]: Start isEmpty. Operand 77 states and 337 transitions. [2019-01-18 14:21:03,360 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-18 14:21:03,360 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:21:03,360 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-18 14:21:03,360 INFO L423 AbstractCegarLoop]: === Iteration 31 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:21:03,360 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:21:03,361 INFO L82 PathProgramCache]: Analyzing trace with hash 902591586, now seen corresponding path program 1 times [2019-01-18 14:21:03,361 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:21:03,361 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:21:03,361 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:21:03,361 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:21:03,361 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:21:03,364 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:21:03,571 INFO L273 TraceCheckUtils]: 0: Hoare triple {8830#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {8832#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:21:03,573 INFO L273 TraceCheckUtils]: 1: Hoare triple {8832#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {8833#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-18 14:21:03,573 INFO L273 TraceCheckUtils]: 2: Hoare triple {8833#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {8834#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:21:03,574 INFO L273 TraceCheckUtils]: 3: Hoare triple {8834#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {8835#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-18 14:21:03,574 INFO L273 TraceCheckUtils]: 4: Hoare triple {8835#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {8836#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:21:03,575 INFO L273 TraceCheckUtils]: 5: Hoare triple {8836#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {8831#false} is VALID [2019-01-18 14:21:03,575 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:21:03,576 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:21:03,576 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:21:03,576 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-18 14:21:03,576 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [16], [19] [2019-01-18 14:21:03,577 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:21:03,577 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:21:03,589 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:21:03,589 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 4 fixpoints after 4 different actions. Largest state had 0 variables. [2019-01-18 14:21:03,589 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:21:03,589 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:21:03,590 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:21:03,590 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 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-18 14:21:03,599 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:21:03,599 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:21:03,603 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:21:03,608 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:21:03,609 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:21:03,639 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:21:03,647 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:03,648 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:21:03,660 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:03,661 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:03,661 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:21:03,678 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:03,680 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:03,681 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:03,682 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:21:03,686 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:03,706 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:03,718 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:03,728 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:03,744 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:03,744 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-18 14:21:03,749 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:03,749 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_157|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_157| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:21:03,749 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:21:03,801 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:03,802 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:03,804 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:03,805 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:03,806 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:03,807 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:03,809 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:03,809 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-18 14:21:03,813 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:03,844 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-18 14:21:03,844 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-18 14:21:04,124 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:04,125 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_158|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_158| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_158| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= (select |v_#memory_int_158| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_158| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_158| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= .cse0 0))) [2019-01-18 14:21:04,125 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:21:04,179 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:04,181 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:04,182 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:04,183 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:04,185 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:04,186 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:04,187 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:04,188 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:21:04,189 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-18 14:21:04,192 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:04,227 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-18 14:21:04,227 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:30 [2019-01-18 14:21:04,276 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:04,276 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_159|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_159| ULTIMATE.start_main_p2))) (and (= 0 .cse0) (= 0 (+ (select |v_#memory_int_159| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_159| ULTIMATE.start_main_p1)) (= |#memory_int| (store |v_#memory_int_159| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= 0 (select |v_#memory_int_159| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:21:04,276 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:21:04,375 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:04,378 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:04,380 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:04,382 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:04,385 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:04,388 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:04,391 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:04,393 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:04,395 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:04,395 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 69 [2019-01-18 14:21:04,398 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:04,454 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-18 14:21:04,454 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-01-18 14:21:04,467 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:04,467 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_160|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_160| ULTIMATE.start_main_p3))) (and (= 0 (+ (select |v_#memory_int_160| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_160| ULTIMATE.start_main_p2) 1) 0) (= |#memory_int| (store |v_#memory_int_160| ULTIMATE.start_main_p3 (+ .cse0 1))) (= (select |v_#memory_int_160| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= .cse0 0))) [2019-01-18 14:21:04,468 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-18 14:21:04,642 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:04,645 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:04,648 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:04,650 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:04,652 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:04,654 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:04,657 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:04,660 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:04,663 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:04,666 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:04,668 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:04,668 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:21:04,669 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 75 [2019-01-18 14:21:04,680 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:04,723 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-18 14:21:04,723 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-01-18 14:21:04,730 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:04,731 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_161|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_161| ULTIMATE.start_main_p1))) (and (= (+ (select |v_#memory_int_161| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_161| ULTIMATE.start_main_p3) 1) (= 0 .cse0) (= (store |v_#memory_int_161| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |v_#memory_int_161| ULTIMATE.start_main_p2) 1) 0))) [2019-01-18 14:21:04,731 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-18 14:21:04,761 INFO L273 TraceCheckUtils]: 0: Hoare triple {8830#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {8840#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:21:04,763 INFO L273 TraceCheckUtils]: 1: Hoare triple {8840#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {8844#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:21:04,765 INFO L273 TraceCheckUtils]: 2: Hoare triple {8844#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {8848#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:21:04,768 INFO L273 TraceCheckUtils]: 3: Hoare triple {8848#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {8852#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-01-18 14:21:04,771 INFO L273 TraceCheckUtils]: 4: Hoare triple {8852#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {8856#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-18 14:21:04,772 INFO L273 TraceCheckUtils]: 5: Hoare triple {8856#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p1] >= 0); {8831#false} is VALID [2019-01-18 14:21:04,772 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:21:04,773 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:21:04,910 INFO L273 TraceCheckUtils]: 5: Hoare triple {8836#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {8831#false} is VALID [2019-01-18 14:21:04,911 INFO L273 TraceCheckUtils]: 4: Hoare triple {8863#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {8836#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:21:04,912 INFO L273 TraceCheckUtils]: 3: Hoare triple {8867#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {8863#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} is VALID [2019-01-18 14:21:04,914 INFO L273 TraceCheckUtils]: 2: Hoare triple {8871#(<= 0 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {8867#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1))} is VALID [2019-01-18 14:21:04,916 INFO L273 TraceCheckUtils]: 1: Hoare triple {8875#(<= 0 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {8871#(<= 0 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1))} is VALID [2019-01-18 14:21:04,918 INFO L273 TraceCheckUtils]: 0: Hoare triple {8830#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {8875#(<= 0 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1))} is VALID [2019-01-18 14:21:04,918 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 4 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:21:04,936 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:21:04,936 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 14 [2019-01-18 14:21:04,936 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:21:04,936 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-18 14:21:04,936 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:21:04,936 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-18 14:21:04,953 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-18 14:21:04,953 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-18 14:21:04,954 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-18 14:21:04,954 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=93, Invalid=147, Unknown=0, NotChecked=0, Total=240 [2019-01-18 14:21:04,954 INFO L87 Difference]: Start difference. First operand 77 states and 337 transitions. Second operand 12 states. [2019-01-18 14:21:07,573 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:21:07,574 INFO L93 Difference]: Finished difference Result 120 states and 459 transitions. [2019-01-18 14:21:07,574 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-18 14:21:07,574 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-18 14:21:07,574 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:21:07,574 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-18 14:21:07,575 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 63 transitions. [2019-01-18 14:21:07,575 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-18 14:21:07,575 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 63 transitions. [2019-01-18 14:21:07,575 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 63 transitions. [2019-01-18 14:21:07,689 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-18 14:21:07,692 INFO L225 Difference]: With dead ends: 120 [2019-01-18 14:21:07,693 INFO L226 Difference]: Without dead ends: 119 [2019-01-18 14:21:07,693 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 86 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=129, Invalid=213, Unknown=0, NotChecked=0, Total=342 [2019-01-18 14:21:07,693 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 119 states. [2019-01-18 14:21:08,681 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 119 to 82. [2019-01-18 14:21:08,681 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:21:08,681 INFO L82 GeneralOperation]: Start isEquivalent. First operand 119 states. Second operand 82 states. [2019-01-18 14:21:08,681 INFO L74 IsIncluded]: Start isIncluded. First operand 119 states. Second operand 82 states. [2019-01-18 14:21:08,682 INFO L87 Difference]: Start difference. First operand 119 states. Second operand 82 states. [2019-01-18 14:21:08,686 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:21:08,686 INFO L93 Difference]: Finished difference Result 119 states and 455 transitions. [2019-01-18 14:21:08,686 INFO L276 IsEmpty]: Start isEmpty. Operand 119 states and 455 transitions. [2019-01-18 14:21:08,687 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:21:08,687 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:21:08,687 INFO L74 IsIncluded]: Start isIncluded. First operand 82 states. Second operand 119 states. [2019-01-18 14:21:08,687 INFO L87 Difference]: Start difference. First operand 82 states. Second operand 119 states. [2019-01-18 14:21:08,690 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:21:08,690 INFO L93 Difference]: Finished difference Result 119 states and 455 transitions. [2019-01-18 14:21:08,691 INFO L276 IsEmpty]: Start isEmpty. Operand 119 states and 455 transitions. [2019-01-18 14:21:08,691 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:21:08,691 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:21:08,691 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:21:08,691 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:21:08,691 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 82 states. [2019-01-18 14:21:08,694 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 82 states to 82 states and 362 transitions. [2019-01-18 14:21:08,694 INFO L78 Accepts]: Start accepts. Automaton has 82 states and 362 transitions. Word has length 6 [2019-01-18 14:21:08,694 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:21:08,694 INFO L480 AbstractCegarLoop]: Abstraction has 82 states and 362 transitions. [2019-01-18 14:21:08,694 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-18 14:21:08,694 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 362 transitions. [2019-01-18 14:21:08,694 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-18 14:21:08,695 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:21:08,695 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-18 14:21:08,695 INFO L423 AbstractCegarLoop]: === Iteration 32 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:21:08,695 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:21:08,695 INFO L82 PathProgramCache]: Analyzing trace with hash 902703186, now seen corresponding path program 2 times [2019-01-18 14:21:08,695 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:21:08,696 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:21:08,696 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:21:08,696 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:21:08,696 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:21:08,699 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:21:08,980 INFO L273 TraceCheckUtils]: 0: Hoare triple {9479#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {9481#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:21:08,981 INFO L273 TraceCheckUtils]: 1: Hoare triple {9481#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {9482#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:21:08,982 INFO L273 TraceCheckUtils]: 2: Hoare triple {9482#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {9483#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} is VALID [2019-01-18 14:21:08,983 INFO L273 TraceCheckUtils]: 3: Hoare triple {9483#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {9484#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} is VALID [2019-01-18 14:21:08,984 INFO L273 TraceCheckUtils]: 4: Hoare triple {9484#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {9485#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:21:08,985 INFO L273 TraceCheckUtils]: 5: Hoare triple {9485#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {9480#false} is VALID [2019-01-18 14:21:08,985 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:21:08,986 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:21:08,986 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:21:08,986 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-18 14:21:08,987 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-18 14:21:08,987 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:21:08,987 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-18 14:21:09,001 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-18 14:21:09,001 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-18 14:21:09,009 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-18 14:21:09,009 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-18 14:21:09,014 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:21:09,014 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:21:09,030 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:21:09,036 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:09,036 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:21:09,045 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:09,046 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:09,047 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:21:09,058 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:09,060 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:09,061 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:09,062 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:21:09,086 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:09,103 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:09,112 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:09,121 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:09,134 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:09,135 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-18 14:21:09,139 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:09,139 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_166|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_166| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:21:09,139 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:21:09,185 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:09,186 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:09,188 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:09,189 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:09,190 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:09,191 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:09,192 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:09,193 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-18 14:21:09,195 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:09,223 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-18 14:21:09,224 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-18 14:21:11,235 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:11,236 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_167|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_167| ULTIMATE.start_main_p4))) (and (= (select |v_#memory_int_167| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_167| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (store |v_#memory_int_167| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_167| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:21:11,236 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:21:11,294 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:11,296 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:11,297 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:11,298 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:11,300 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:11,301 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:11,302 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:11,303 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:11,304 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:11,305 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-18 14:21:11,308 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:11,342 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-18 14:21:11,342 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-18 14:21:13,873 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:13,873 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_168|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_168| ULTIMATE.start_main_p3))) (and (= (+ (select |v_#memory_int_168| ULTIMATE.start_main_p4) 1) 0) (= (select |v_#memory_int_168| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_168| ULTIMATE.start_main_p3 (+ .cse0 1))) (= (select |v_#memory_int_168| ULTIMATE.start_main_p2) 0) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:21:13,873 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:21:13,974 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:13,975 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:13,976 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:13,978 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:13,979 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:13,980 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:13,981 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:13,982 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:13,983 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:13,984 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:13,985 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:13,986 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:21:13,987 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 73 [2019-01-18 14:21:13,990 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:14,027 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-18 14:21:14,027 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-18 14:21:14,033 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:14,034 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_169|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_169| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_169| ULTIMATE.start_main_p3) 1) (= (+ (select |v_#memory_int_169| ULTIMATE.start_main_p4) 1) 0) (= .cse0 0) (= (select |v_#memory_int_169| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (store |v_#memory_int_169| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:21:14,034 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:21:14,085 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:14,087 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:14,088 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:14,089 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:14,091 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:14,092 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:14,093 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:14,094 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:14,095 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:21:14,096 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:14,097 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 72 [2019-01-18 14:21:14,100 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:14,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-18 14:21:14,138 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:30 [2019-01-18 14:21:16,169 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:16,169 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_170|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_170| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_170| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |v_#memory_int_170| ULTIMATE.start_main_p4) 1)) (= |#memory_int| (store |v_#memory_int_170| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= (select |v_#memory_int_170| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:21:16,170 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:21:16,208 INFO L273 TraceCheckUtils]: 0: Hoare triple {9479#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {9489#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:21:16,210 INFO L273 TraceCheckUtils]: 1: Hoare triple {9489#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {9493#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:21:16,212 INFO L273 TraceCheckUtils]: 2: Hoare triple {9493#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {9497#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:21:16,214 INFO L273 TraceCheckUtils]: 3: Hoare triple {9497#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {9501#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:21:16,216 INFO L273 TraceCheckUtils]: 4: Hoare triple {9501#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {9505#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 1))} is VALID [2019-01-18 14:21:16,217 INFO L273 TraceCheckUtils]: 5: Hoare triple {9505#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 1))} assume !(#memory_int[main_p1] >= 0); {9480#false} is VALID [2019-01-18 14:21:16,217 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:21:16,217 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:21:16,333 INFO L273 TraceCheckUtils]: 5: Hoare triple {9509#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {9480#false} is VALID [2019-01-18 14:21:16,335 INFO L273 TraceCheckUtils]: 4: Hoare triple {9513#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {9509#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:21:16,336 INFO L273 TraceCheckUtils]: 3: Hoare triple {9517#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {9513#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:21:16,338 INFO L273 TraceCheckUtils]: 2: Hoare triple {9521#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {9517#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:21:16,340 INFO L273 TraceCheckUtils]: 1: Hoare triple {9525#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {9521#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:21:16,342 INFO L273 TraceCheckUtils]: 0: Hoare triple {9479#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {9525#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:21:16,343 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 6 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:21:16,363 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:21:16,363 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 15 [2019-01-18 14:21:16,363 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:21:16,363 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-18 14:21:16,364 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:21:16,364 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-18 14:21:16,382 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:21:16,382 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-18 14:21:16,382 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-18 14:21:16,383 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=102, Invalid=170, Unknown=0, NotChecked=0, Total=272 [2019-01-18 14:21:16,383 INFO L87 Difference]: Start difference. First operand 82 states and 362 transitions. Second operand 12 states. [2019-01-18 14:21:19,197 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:21:19,198 INFO L93 Difference]: Finished difference Result 146 states and 556 transitions. [2019-01-18 14:21:19,198 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-18 14:21:19,198 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-18 14:21:19,198 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:21:19,198 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-18 14:21:19,199 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 67 transitions. [2019-01-18 14:21:19,199 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-18 14:21:19,199 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 67 transitions. [2019-01-18 14:21:19,199 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 67 transitions. [2019-01-18 14:21:19,309 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 67 edges. 67 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:21:19,312 INFO L225 Difference]: With dead ends: 146 [2019-01-18 14:21:19,313 INFO L226 Difference]: Without dead ends: 145 [2019-01-18 14:21:19,313 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 18 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 100 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=134, Invalid=246, Unknown=0, NotChecked=0, Total=380 [2019-01-18 14:21:19,313 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 145 states. [2019-01-18 14:21:20,504 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 145 to 98. [2019-01-18 14:21:20,504 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:21:20,505 INFO L82 GeneralOperation]: Start isEquivalent. First operand 145 states. Second operand 98 states. [2019-01-18 14:21:20,505 INFO L74 IsIncluded]: Start isIncluded. First operand 145 states. Second operand 98 states. [2019-01-18 14:21:20,505 INFO L87 Difference]: Start difference. First operand 145 states. Second operand 98 states. [2019-01-18 14:21:20,509 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:21:20,509 INFO L93 Difference]: Finished difference Result 145 states and 549 transitions. [2019-01-18 14:21:20,509 INFO L276 IsEmpty]: Start isEmpty. Operand 145 states and 549 transitions. [2019-01-18 14:21:20,510 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:21:20,510 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:21:20,510 INFO L74 IsIncluded]: Start isIncluded. First operand 98 states. Second operand 145 states. [2019-01-18 14:21:20,510 INFO L87 Difference]: Start difference. First operand 98 states. Second operand 145 states. [2019-01-18 14:21:20,513 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:21:20,513 INFO L93 Difference]: Finished difference Result 145 states and 549 transitions. [2019-01-18 14:21:20,513 INFO L276 IsEmpty]: Start isEmpty. Operand 145 states and 549 transitions. [2019-01-18 14:21:20,514 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:21:20,514 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:21:20,514 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:21:20,514 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:21:20,514 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 98 states. [2019-01-18 14:21:20,516 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 98 states to 98 states and 442 transitions. [2019-01-18 14:21:20,516 INFO L78 Accepts]: Start accepts. Automaton has 98 states and 442 transitions. Word has length 6 [2019-01-18 14:21:20,516 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:21:20,517 INFO L480 AbstractCegarLoop]: Abstraction has 98 states and 442 transitions. [2019-01-18 14:21:20,517 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-18 14:21:20,517 INFO L276 IsEmpty]: Start isEmpty. Operand 98 states and 442 transitions. [2019-01-18 14:21:20,517 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-18 14:21:20,517 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:21:20,517 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-18 14:21:20,517 INFO L423 AbstractCegarLoop]: === Iteration 33 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:21:20,517 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:21:20,518 INFO L82 PathProgramCache]: Analyzing trace with hash 893362642, now seen corresponding path program 1 times [2019-01-18 14:21:20,518 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:21:20,518 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:21:20,518 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-18 14:21:20,518 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:21:20,518 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:21:20,522 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:21:20,668 INFO L273 TraceCheckUtils]: 0: Hoare triple {10256#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {10258#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:21:20,669 INFO L273 TraceCheckUtils]: 1: Hoare triple {10258#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {10258#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:21:20,670 INFO L273 TraceCheckUtils]: 2: Hoare triple {10258#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {10259#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-18 14:21:20,670 INFO L273 TraceCheckUtils]: 3: Hoare triple {10259#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p1] >= 0; {10259#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-18 14:21:20,671 INFO L273 TraceCheckUtils]: 4: Hoare triple {10259#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p2] <= 0; {10259#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-18 14:21:20,672 INFO L273 TraceCheckUtils]: 5: Hoare triple {10259#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {10257#false} is VALID [2019-01-18 14:21:20,672 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-18 14:21:20,672 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:21:20,672 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:21:20,673 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-18 14:21:20,673 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [20], [22], [23] [2019-01-18 14:21:20,674 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:21:20,674 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:21:20,685 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:21:20,685 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:21:20,685 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:21:20,685 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:21:20,685 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:21:20,686 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-18 14:21:20,695 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:21:20,695 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:21:20,699 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:21:20,703 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:21:20,703 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:21:20,734 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:21:20,745 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:20,746 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:21:20,759 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:20,760 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:20,761 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:21:20,776 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:20,777 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:20,779 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:20,780 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:21:20,784 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:20,803 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:20,814 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:20,825 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:20,841 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-18 14:21:20,841 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-18 14:21:20,847 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:20,847 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_175|, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_175| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:21:20,847 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:21:20,945 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:20,946 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:20,948 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:20,949 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:20,950 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:20,951 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:20,952 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:20,953 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-18 14:21:20,958 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:20,990 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-18 14:21:20,990 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-18 14:21:23,246 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:23,247 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_176|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_176| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= 0 (select |v_#memory_int_176| ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_176| ULTIMATE.start_main_p2)) (= (store |v_#memory_int_176| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (select |v_#memory_int_176| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:21:23,247 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:21:23,336 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:23,338 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:23,339 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:23,340 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:23,341 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:23,342 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:23,343 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:23,345 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:23,346 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:23,346 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 65 [2019-01-18 14:21:23,351 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:23,389 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-18 14:21:23,389 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-18 14:21:23,399 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:23,399 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_177|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_177| ULTIMATE.start_main_p2))) (and (= 1 (select |v_#memory_int_177| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_177| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 .cse0) (= 0 (select |v_#memory_int_177| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (select |v_#memory_int_177| ULTIMATE.start_main_p4)))) [2019-01-18 14:21:23,400 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:21:23,481 INFO L273 TraceCheckUtils]: 0: Hoare triple {10256#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {10263#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:21:23,483 INFO L273 TraceCheckUtils]: 1: Hoare triple {10263#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {10267#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:23,485 INFO L273 TraceCheckUtils]: 2: Hoare triple {10267#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {10271#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-18 14:21:23,486 INFO L273 TraceCheckUtils]: 3: Hoare triple {10271#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p1] >= 0; {10271#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-18 14:21:23,487 INFO L273 TraceCheckUtils]: 4: Hoare triple {10271#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p2] <= 0; {10271#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-18 14:21:23,488 INFO L273 TraceCheckUtils]: 5: Hoare triple {10271#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p3] >= 0); {10257#false} is VALID [2019-01-18 14:21:23,489 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:21:23,489 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:21:23,538 INFO L273 TraceCheckUtils]: 5: Hoare triple {10281#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {10257#false} is VALID [2019-01-18 14:21:23,538 INFO L273 TraceCheckUtils]: 4: Hoare triple {10281#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {10281#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:23,539 INFO L273 TraceCheckUtils]: 3: Hoare triple {10281#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {10281#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:23,540 INFO L273 TraceCheckUtils]: 2: Hoare triple {10291#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {10281#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:23,541 INFO L273 TraceCheckUtils]: 1: Hoare triple {10295#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {10291#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:23,543 INFO L273 TraceCheckUtils]: 0: Hoare triple {10256#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {10295#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:23,544 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-18 14:21:23,564 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:21:23,564 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 3, 3] total 8 [2019-01-18 14:21:23,564 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:21:23,564 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 6 [2019-01-18 14:21:23,564 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:21:23,565 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states. [2019-01-18 14:21:23,582 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-18 14:21:23,582 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2019-01-18 14:21:23,582 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2019-01-18 14:21:23,582 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=35, Invalid=55, Unknown=0, NotChecked=0, Total=90 [2019-01-18 14:21:23,582 INFO L87 Difference]: Start difference. First operand 98 states and 442 transitions. Second operand 7 states. [2019-01-18 14:21:25,231 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:21:25,231 INFO L93 Difference]: Finished difference Result 111 states and 462 transitions. [2019-01-18 14:21:25,231 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-18 14:21:25,232 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 6 [2019-01-18 14:21:25,232 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:21:25,232 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-01-18 14:21:25,232 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 38 transitions. [2019-01-18 14:21:25,232 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-01-18 14:21:25,233 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 38 transitions. [2019-01-18 14:21:25,233 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 38 transitions. [2019-01-18 14:21:25,283 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 38 edges. 38 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:21:25,285 INFO L225 Difference]: With dead ends: 111 [2019-01-18 14:21:25,285 INFO L226 Difference]: Without dead ends: 110 [2019-01-18 14:21:25,285 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 5 SyntacticMatches, 2 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 24 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=51, Invalid=81, Unknown=0, NotChecked=0, Total=132 [2019-01-18 14:21:25,285 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 110 states. [2019-01-18 14:21:26,452 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 110 to 100. [2019-01-18 14:21:26,453 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:21:26,453 INFO L82 GeneralOperation]: Start isEquivalent. First operand 110 states. Second operand 100 states. [2019-01-18 14:21:26,453 INFO L74 IsIncluded]: Start isIncluded. First operand 110 states. Second operand 100 states. [2019-01-18 14:21:26,453 INFO L87 Difference]: Start difference. First operand 110 states. Second operand 100 states. [2019-01-18 14:21:26,456 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:21:26,456 INFO L93 Difference]: Finished difference Result 110 states and 460 transitions. [2019-01-18 14:21:26,457 INFO L276 IsEmpty]: Start isEmpty. Operand 110 states and 460 transitions. [2019-01-18 14:21:26,457 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:21:26,457 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:21:26,457 INFO L74 IsIncluded]: Start isIncluded. First operand 100 states. Second operand 110 states. [2019-01-18 14:21:26,457 INFO L87 Difference]: Start difference. First operand 100 states. Second operand 110 states. [2019-01-18 14:21:26,460 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:21:26,460 INFO L93 Difference]: Finished difference Result 110 states and 460 transitions. [2019-01-18 14:21:26,460 INFO L276 IsEmpty]: Start isEmpty. Operand 110 states and 460 transitions. [2019-01-18 14:21:26,460 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:21:26,460 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:21:26,460 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:21:26,460 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:21:26,460 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 100 states. [2019-01-18 14:21:26,462 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 100 states to 100 states and 452 transitions. [2019-01-18 14:21:26,463 INFO L78 Accepts]: Start accepts. Automaton has 100 states and 452 transitions. Word has length 6 [2019-01-18 14:21:26,463 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:21:26,463 INFO L480 AbstractCegarLoop]: Abstraction has 100 states and 452 transitions. [2019-01-18 14:21:26,463 INFO L481 AbstractCegarLoop]: Interpolant automaton has 7 states. [2019-01-18 14:21:26,463 INFO L276 IsEmpty]: Start isEmpty. Operand 100 states and 452 transitions. [2019-01-18 14:21:26,463 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-18 14:21:26,463 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:21:26,463 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-18 14:21:26,464 INFO L423 AbstractCegarLoop]: === Iteration 34 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:21:26,464 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:21:26,464 INFO L82 PathProgramCache]: Analyzing trace with hash 893472132, now seen corresponding path program 1 times [2019-01-18 14:21:26,464 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:21:26,464 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:21:26,465 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:21:26,465 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:21:26,465 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:21:26,469 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:21:26,816 INFO L273 TraceCheckUtils]: 0: Hoare triple {10909#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {10911#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:21:26,818 INFO L273 TraceCheckUtils]: 1: Hoare triple {10911#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {10911#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:21:26,819 INFO L273 TraceCheckUtils]: 2: Hoare triple {10911#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {10912#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-18 14:21:26,820 INFO L273 TraceCheckUtils]: 3: Hoare triple {10912#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {10913#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-18 14:21:26,820 INFO L273 TraceCheckUtils]: 4: Hoare triple {10913#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {10914#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:21:26,821 INFO L273 TraceCheckUtils]: 5: Hoare triple {10914#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {10910#false} is VALID [2019-01-18 14:21:26,821 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-18 14:21:26,822 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:21:26,822 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:21:26,822 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-18 14:21:26,822 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [20], [21] [2019-01-18 14:21:26,828 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:21:26,828 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:21:26,842 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:21:26,842 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-18 14:21:26,842 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:21:26,843 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:21:26,843 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:21:26,843 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-18 14:21:26,852 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:21:26,852 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:21:26,856 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:21:26,859 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:21:26,860 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:21:26,882 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:21:26,891 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:26,891 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:21:26,904 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:26,906 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:26,906 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:21:26,924 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:26,925 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:26,927 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:26,928 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:21:26,934 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:26,953 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:26,966 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:26,977 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:26,996 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-18 14:21:26,997 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-18 14:21:27,004 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:27,004 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_180|, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_180| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:21:27,004 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:21:27,066 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:27,068 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:27,069 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:27,070 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:27,071 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:27,073 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:27,074 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:27,075 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-18 14:21:27,109 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:27,146 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-18 14:21:27,146 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-18 14:21:27,221 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:27,221 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_181|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_181| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_181| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_181| ULTIMATE.start_main_p2)) (= (select |v_#memory_int_181| ULTIMATE.start_main_p4) 0) (= |#memory_int| (store |v_#memory_int_181| ULTIMATE.start_main_p1 (+ .cse0 1))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 .cse0))) [2019-01-18 14:21:27,221 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:21:27,287 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:27,289 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:27,290 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:27,291 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:27,293 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:27,294 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:27,295 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:27,296 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:27,297 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:21:27,300 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-18 14:21:27,305 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:27,341 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-18 14:21:27,342 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-18 14:21:27,356 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:27,356 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_182|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_182| ULTIMATE.start_main_p3))) (and (= (select |v_#memory_int_182| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_182| ULTIMATE.start_main_p1) 1) (= 0 (select |v_#memory_int_182| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_182| ULTIMATE.start_main_p3 (+ .cse0 1))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:21:27,356 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:21:27,428 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:27,429 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:27,431 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:27,432 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:27,433 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:27,434 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:27,436 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:27,437 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:27,438 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:27,439 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 65 [2019-01-18 14:21:27,445 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:27,533 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-18 14:21:27,533 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-18 14:21:27,547 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:27,548 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_183|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_183| ULTIMATE.start_main_p2))) (and (= (store |v_#memory_int_183| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |v_#memory_int_183| ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_183| ULTIMATE.start_main_p4)) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 1 (select |v_#memory_int_183| ULTIMATE.start_main_p3)))) [2019-01-18 14:21:27,548 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:21:27,620 INFO L273 TraceCheckUtils]: 0: Hoare triple {10909#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {10918#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:21:27,621 INFO L273 TraceCheckUtils]: 1: Hoare triple {10918#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {10922#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:27,624 INFO L273 TraceCheckUtils]: 2: Hoare triple {10922#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {10926#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:21:27,626 INFO L273 TraceCheckUtils]: 3: Hoare triple {10926#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {10930#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))} is VALID [2019-01-18 14:21:27,627 INFO L273 TraceCheckUtils]: 4: Hoare triple {10930#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))} assume #memory_int[main_p1] >= 0; {10930#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))} is VALID [2019-01-18 14:21:27,628 INFO L273 TraceCheckUtils]: 5: Hoare triple {10930#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))} assume !(#memory_int[main_p2] <= 0); {10910#false} is VALID [2019-01-18 14:21:27,629 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-18 14:21:27,629 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:21:27,695 INFO L273 TraceCheckUtils]: 5: Hoare triple {10914#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {10910#false} is VALID [2019-01-18 14:21:27,696 INFO L273 TraceCheckUtils]: 4: Hoare triple {10914#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {10914#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:21:27,697 INFO L273 TraceCheckUtils]: 3: Hoare triple {10943#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {10914#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:21:27,698 INFO L273 TraceCheckUtils]: 2: Hoare triple {10947#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {10943#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} is VALID [2019-01-18 14:21:27,699 INFO L273 TraceCheckUtils]: 1: Hoare triple {10951#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {10947#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-01-18 14:21:27,701 INFO L273 TraceCheckUtils]: 0: Hoare triple {10909#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {10951#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-01-18 14:21:27,702 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-18 14:21:27,722 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:21:27,722 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-18 14:21:27,722 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:21:27,722 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-18 14:21:27,723 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:21:27,723 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-18 14:21:27,746 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-18 14:21:27,747 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-18 14:21:27,747 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-18 14:21:27,747 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-01-18 14:21:27,748 INFO L87 Difference]: Start difference. First operand 100 states and 452 transitions. Second operand 10 states. [2019-01-18 14:21:29,959 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:21:29,959 INFO L93 Difference]: Finished difference Result 153 states and 620 transitions. [2019-01-18 14:21:29,959 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-18 14:21:29,959 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-18 14:21:29,959 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:21:29,959 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:21:29,960 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 57 transitions. [2019-01-18 14:21:29,960 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:21:29,960 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 57 transitions. [2019-01-18 14:21:29,960 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 57 transitions. [2019-01-18 14:21:30,071 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 57 edges. 57 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:21:30,073 INFO L225 Difference]: With dead ends: 153 [2019-01-18 14:21:30,073 INFO L226 Difference]: Without dead ends: 152 [2019-01-18 14:21:30,074 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 45 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=89, Invalid=151, Unknown=0, NotChecked=0, Total=240 [2019-01-18 14:21:30,074 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 152 states. [2019-01-18 14:21:31,585 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 152 to 127. [2019-01-18 14:21:31,585 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:21:31,585 INFO L82 GeneralOperation]: Start isEquivalent. First operand 152 states. Second operand 127 states. [2019-01-18 14:21:31,585 INFO L74 IsIncluded]: Start isIncluded. First operand 152 states. Second operand 127 states. [2019-01-18 14:21:31,585 INFO L87 Difference]: Start difference. First operand 152 states. Second operand 127 states. [2019-01-18 14:21:31,589 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:21:31,590 INFO L93 Difference]: Finished difference Result 152 states and 617 transitions. [2019-01-18 14:21:31,590 INFO L276 IsEmpty]: Start isEmpty. Operand 152 states and 617 transitions. [2019-01-18 14:21:31,590 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:21:31,590 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:21:31,590 INFO L74 IsIncluded]: Start isIncluded. First operand 127 states. Second operand 152 states. [2019-01-18 14:21:31,590 INFO L87 Difference]: Start difference. First operand 127 states. Second operand 152 states. [2019-01-18 14:21:31,595 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:21:31,595 INFO L93 Difference]: Finished difference Result 152 states and 617 transitions. [2019-01-18 14:21:31,595 INFO L276 IsEmpty]: Start isEmpty. Operand 152 states and 617 transitions. [2019-01-18 14:21:31,595 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:21:31,596 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:21:31,596 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:21:31,596 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:21:31,596 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 127 states. [2019-01-18 14:21:31,599 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 127 states to 127 states and 589 transitions. [2019-01-18 14:21:31,599 INFO L78 Accepts]: Start accepts. Automaton has 127 states and 589 transitions. Word has length 6 [2019-01-18 14:21:31,599 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:21:31,599 INFO L480 AbstractCegarLoop]: Abstraction has 127 states and 589 transitions. [2019-01-18 14:21:31,600 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-18 14:21:31,600 INFO L276 IsEmpty]: Start isEmpty. Operand 127 states and 589 transitions. [2019-01-18 14:21:31,600 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-18 14:21:31,600 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:21:31,600 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-18 14:21:31,600 INFO L423 AbstractCegarLoop]: === Iteration 35 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:21:31,601 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:21:31,601 INFO L82 PathProgramCache]: Analyzing trace with hash 897235472, now seen corresponding path program 1 times [2019-01-18 14:21:31,601 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:21:31,601 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:21:31,602 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:21:31,602 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:21:31,602 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:21:31,606 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:21:31,754 INFO L273 TraceCheckUtils]: 0: Hoare triple {11776#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {11778#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:21:31,755 INFO L273 TraceCheckUtils]: 1: Hoare triple {11778#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {11778#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:21:31,756 INFO L273 TraceCheckUtils]: 2: Hoare triple {11778#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {11779#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:21:31,757 INFO L273 TraceCheckUtils]: 3: Hoare triple {11779#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p1] >= 0; {11779#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:21:31,757 INFO L273 TraceCheckUtils]: 4: Hoare triple {11779#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p2] <= 0; {11780#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-18 14:21:31,757 INFO L273 TraceCheckUtils]: 5: Hoare triple {11780#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {11777#false} is VALID [2019-01-18 14:21:31,758 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-18 14:21:31,758 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:21:31,758 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:21:31,758 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-18 14:21:31,758 INFO L207 CegarAbsIntRunner]: [0], [10], [16], [20], [22], [23] [2019-01-18 14:21:31,759 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:21:31,760 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:21:31,767 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:21:31,767 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:21:31,767 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:21:31,767 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:21:31,768 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:21:31,768 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-18 14:21:31,777 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:21:31,777 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:21:31,780 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:21:31,783 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:21:31,784 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:21:31,795 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:21:31,802 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-18 14:21:31,812 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:31,813 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-01-18 14:21:31,828 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:31,830 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:31,830 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-01-18 14:21:31,833 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:31,847 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:31,856 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:31,865 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:31,878 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-18 14:21:31,878 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:22, output treesize:27 [2019-01-18 14:21:31,884 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:31,884 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_187|, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_187| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:21:31,884 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:21:31,933 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:31,935 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:31,936 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:31,937 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:31,938 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 34 [2019-01-18 14:21:31,940 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:31,957 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-18 14:21:31,958 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-18 14:21:31,977 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:31,977 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_188|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_188| ULTIMATE.start_main_p2))) (and (= (store |v_#memory_int_188| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_188| ULTIMATE.start_main_p3)) (= 0 .cse0) (= 0 (select |v_#memory_int_188| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:21:31,977 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:21:32,033 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:32,035 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:32,036 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:32,037 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:32,038 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:32,038 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:21:32,039 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 41 [2019-01-18 14:21:32,042 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:32,063 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-18 14:21:32,063 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:34, output treesize:24 [2019-01-18 14:21:33,434 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:33,434 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_189|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_189| ULTIMATE.start_main_p4))) (and (= 0 (+ (select |v_#memory_int_189| ULTIMATE.start_main_p2) 1)) (= 0 (select |v_#memory_int_189| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_189| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:21:33,434 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:21:33,503 INFO L273 TraceCheckUtils]: 0: Hoare triple {11776#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {11784#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:21:33,504 INFO L273 TraceCheckUtils]: 1: Hoare triple {11784#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {11788#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:21:33,506 INFO L273 TraceCheckUtils]: 2: Hoare triple {11788#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {11792#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:21:33,507 INFO L273 TraceCheckUtils]: 3: Hoare triple {11792#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p1] >= 0; {11792#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:21:33,508 INFO L273 TraceCheckUtils]: 4: Hoare triple {11792#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p2] <= 0; {11792#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:21:33,508 INFO L273 TraceCheckUtils]: 5: Hoare triple {11792#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume !(#memory_int[main_p3] >= 0); {11777#false} is VALID [2019-01-18 14:21:33,509 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-18 14:21:33,509 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:21:33,554 INFO L273 TraceCheckUtils]: 5: Hoare triple {11802#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {11777#false} is VALID [2019-01-18 14:21:33,555 INFO L273 TraceCheckUtils]: 4: Hoare triple {11802#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {11802#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:33,555 INFO L273 TraceCheckUtils]: 3: Hoare triple {11802#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {11802#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:33,556 INFO L273 TraceCheckUtils]: 2: Hoare triple {11812#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {11802#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:33,558 INFO L273 TraceCheckUtils]: 1: Hoare triple {11816#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {11812#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:33,560 INFO L273 TraceCheckUtils]: 0: Hoare triple {11776#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {11816#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:33,560 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-18 14:21:33,579 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:21:33,580 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-18 14:21:33,580 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:21:33,580 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-18 14:21:33,580 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:21:33,580 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:21:33,597 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-18 14:21:33,597 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:21:33,597 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:21:33,597 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=41, Invalid=69, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:21:33,598 INFO L87 Difference]: Start difference. First operand 127 states and 589 transitions. Second operand 8 states. [2019-01-18 14:21:35,886 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:21:35,886 INFO L93 Difference]: Finished difference Result 143 states and 607 transitions. [2019-01-18 14:21:35,886 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-18 14:21:35,886 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-18 14:21:35,886 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:21:35,886 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:21:35,887 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 42 transitions. [2019-01-18 14:21:35,887 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:21:35,887 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 42 transitions. [2019-01-18 14:21:35,887 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 42 transitions. [2019-01-18 14:21:35,942 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 42 edges. 42 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:21:35,945 INFO L225 Difference]: With dead ends: 143 [2019-01-18 14:21:35,945 INFO L226 Difference]: Without dead ends: 138 [2019-01-18 14:21:35,946 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 4 SyntacticMatches, 1 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 30 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=59, Invalid=97, Unknown=0, NotChecked=0, Total=156 [2019-01-18 14:21:35,946 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 138 states. [2019-01-18 14:21:37,259 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 138 to 127. [2019-01-18 14:21:37,259 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:21:37,259 INFO L82 GeneralOperation]: Start isEquivalent. First operand 138 states. Second operand 127 states. [2019-01-18 14:21:37,260 INFO L74 IsIncluded]: Start isIncluded. First operand 138 states. Second operand 127 states. [2019-01-18 14:21:37,260 INFO L87 Difference]: Start difference. First operand 138 states. Second operand 127 states. [2019-01-18 14:21:37,265 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:21:37,265 INFO L93 Difference]: Finished difference Result 138 states and 601 transitions. [2019-01-18 14:21:37,265 INFO L276 IsEmpty]: Start isEmpty. Operand 138 states and 601 transitions. [2019-01-18 14:21:37,266 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:21:37,266 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:21:37,266 INFO L74 IsIncluded]: Start isIncluded. First operand 127 states. Second operand 138 states. [2019-01-18 14:21:37,266 INFO L87 Difference]: Start difference. First operand 127 states. Second operand 138 states. [2019-01-18 14:21:37,270 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:21:37,270 INFO L93 Difference]: Finished difference Result 138 states and 601 transitions. [2019-01-18 14:21:37,270 INFO L276 IsEmpty]: Start isEmpty. Operand 138 states and 601 transitions. [2019-01-18 14:21:37,271 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:21:37,271 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:21:37,271 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:21:37,271 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:21:37,271 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 127 states. [2019-01-18 14:21:37,273 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 127 states to 127 states and 588 transitions. [2019-01-18 14:21:37,273 INFO L78 Accepts]: Start accepts. Automaton has 127 states and 588 transitions. Word has length 6 [2019-01-18 14:21:37,274 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:21:37,274 INFO L480 AbstractCegarLoop]: Abstraction has 127 states and 588 transitions. [2019-01-18 14:21:37,274 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:21:37,274 INFO L276 IsEmpty]: Start isEmpty. Operand 127 states and 588 transitions. [2019-01-18 14:21:37,274 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-18 14:21:37,274 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:21:37,274 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-18 14:21:37,274 INFO L423 AbstractCegarLoop]: === Iteration 36 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:21:37,275 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:21:37,275 INFO L82 PathProgramCache]: Analyzing trace with hash 896931732, now seen corresponding path program 2 times [2019-01-18 14:21:37,275 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:21:37,275 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:21:37,275 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:21:37,275 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:21:37,276 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:21:37,280 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:21:37,674 WARN L181 SmtUtils]: Spent 113.00 ms on a formula simplification. DAG size of input: 26 DAG size of output: 13 [2019-01-18 14:21:37,800 INFO L273 TraceCheckUtils]: 0: Hoare triple {12600#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {12602#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-18 14:21:37,801 INFO L273 TraceCheckUtils]: 1: Hoare triple {12602#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {12603#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-18 14:21:37,802 INFO L273 TraceCheckUtils]: 2: Hoare triple {12603#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {12603#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-18 14:21:37,802 INFO L273 TraceCheckUtils]: 3: Hoare triple {12603#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {12604#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-18 14:21:37,803 INFO L273 TraceCheckUtils]: 4: Hoare triple {12604#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {12605#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:21:37,803 INFO L273 TraceCheckUtils]: 5: Hoare triple {12605#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {12601#false} is VALID [2019-01-18 14:21:37,803 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-18 14:21:37,803 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:21:37,803 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:21:37,804 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-18 14:21:37,804 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-18 14:21:37,804 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:21:37,804 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-18 14:21:37,815 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-18 14:21:37,816 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-18 14:21:37,822 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-18 14:21:37,822 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-18 14:21:37,826 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:21:37,826 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:21:37,853 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:21:37,862 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:37,863 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:21:37,875 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:37,876 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:37,877 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:21:37,894 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:37,895 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:37,896 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:37,897 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:21:37,902 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:37,920 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:37,932 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:37,943 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:37,961 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-18 14:21:37,961 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-18 14:21:37,967 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:37,967 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_192|, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_192| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:21:37,967 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:21:38,027 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:38,028 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:38,029 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:38,031 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:38,032 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:38,033 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:38,034 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:38,035 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-18 14:21:38,040 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:38,074 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-18 14:21:38,074 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-18 14:21:38,093 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:38,093 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_193|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_193| ULTIMATE.start_main_p2))) (and (= (store |v_#memory_int_193| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_193| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_193| ULTIMATE.start_main_p1) 0) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (select |v_#memory_int_193| ULTIMATE.start_main_p3)))) [2019-01-18 14:21:38,093 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:21:38,164 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:38,166 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:38,167 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:38,168 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:38,169 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:38,170 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:38,172 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:38,173 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:38,174 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:38,175 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-18 14:21:38,180 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:38,216 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-18 14:21:38,216 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-18 14:21:38,241 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:38,242 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_194|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_194| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_194| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (store |v_#memory_int_194| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (+ (select |v_#memory_int_194| ULTIMATE.start_main_p2) 1)) (= (select |v_#memory_int_194| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:21:38,242 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-18 14:21:38,306 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:38,308 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:38,309 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:38,310 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:38,311 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:38,312 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:38,313 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:38,314 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:38,315 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:38,316 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:38,317 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:21:38,318 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-18 14:21:38,323 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:38,362 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-18 14:21:38,363 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-18 14:21:38,373 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:38,373 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_195|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_195| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_195| ULTIMATE.start_main_p4) 0) (= 1 (select |v_#memory_int_195| ULTIMATE.start_main_p1)) (= .cse0 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (store |v_#memory_int_195| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (+ (select |v_#memory_int_195| ULTIMATE.start_main_p2) 1)))) [2019-01-18 14:21:38,374 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-18 14:21:38,470 INFO L273 TraceCheckUtils]: 0: Hoare triple {12600#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {12609#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:21:38,472 INFO L273 TraceCheckUtils]: 1: Hoare triple {12609#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {12613#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:21:38,474 INFO L273 TraceCheckUtils]: 2: Hoare triple {12613#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {12617#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-18 14:21:38,476 INFO L273 TraceCheckUtils]: 3: Hoare triple {12617#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {12621#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-18 14:21:38,477 INFO L273 TraceCheckUtils]: 4: Hoare triple {12621#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume #memory_int[main_p1] >= 0; {12621#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-18 14:21:38,478 INFO L273 TraceCheckUtils]: 5: Hoare triple {12621#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume !(#memory_int[main_p2] <= 0); {12601#false} is VALID [2019-01-18 14:21:38,479 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-18 14:21:38,479 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:21:38,550 INFO L273 TraceCheckUtils]: 5: Hoare triple {12605#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {12601#false} is VALID [2019-01-18 14:21:38,551 INFO L273 TraceCheckUtils]: 4: Hoare triple {12605#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {12605#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:21:38,552 INFO L273 TraceCheckUtils]: 3: Hoare triple {12634#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {12605#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:21:38,553 INFO L273 TraceCheckUtils]: 2: Hoare triple {12638#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {12634#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:21:38,555 INFO L273 TraceCheckUtils]: 1: Hoare triple {12642#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {12638#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:21:38,557 INFO L273 TraceCheckUtils]: 0: Hoare triple {12600#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {12642#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:21:38,558 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-18 14:21:38,577 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:21:38,577 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-18 14:21:38,577 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:21:38,578 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-18 14:21:38,578 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:21:38,578 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-18 14:21:38,611 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-18 14:21:38,611 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-18 14:21:38,611 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-18 14:21:38,612 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=59, Invalid=97, Unknown=0, NotChecked=0, Total=156 [2019-01-18 14:21:38,612 INFO L87 Difference]: Start difference. First operand 127 states and 588 transitions. Second operand 10 states. [2019-01-18 14:21:41,622 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:21:41,622 INFO L93 Difference]: Finished difference Result 196 states and 812 transitions. [2019-01-18 14:21:41,622 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-01-18 14:21:41,622 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-18 14:21:41,622 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:21:41,622 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:21:41,623 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 66 transitions. [2019-01-18 14:21:41,623 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:21:41,623 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 66 transitions. [2019-01-18 14:21:41,623 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 66 transitions. [2019-01-18 14:21:41,714 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-18 14:21:41,718 INFO L225 Difference]: With dead ends: 196 [2019-01-18 14:21:41,719 INFO L226 Difference]: Without dead ends: 195 [2019-01-18 14:21:41,719 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 40 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=77, Invalid=133, Unknown=0, NotChecked=0, Total=210 [2019-01-18 14:21:41,719 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 195 states. [2019-01-18 14:21:43,137 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 195 to 141. [2019-01-18 14:21:43,137 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:21:43,137 INFO L82 GeneralOperation]: Start isEquivalent. First operand 195 states. Second operand 141 states. [2019-01-18 14:21:43,137 INFO L74 IsIncluded]: Start isIncluded. First operand 195 states. Second operand 141 states. [2019-01-18 14:21:43,138 INFO L87 Difference]: Start difference. First operand 195 states. Second operand 141 states. [2019-01-18 14:21:43,143 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:21:43,143 INFO L93 Difference]: Finished difference Result 195 states and 809 transitions. [2019-01-18 14:21:43,143 INFO L276 IsEmpty]: Start isEmpty. Operand 195 states and 809 transitions. [2019-01-18 14:21:43,144 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:21:43,144 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:21:43,144 INFO L74 IsIncluded]: Start isIncluded. First operand 141 states. Second operand 195 states. [2019-01-18 14:21:43,144 INFO L87 Difference]: Start difference. First operand 141 states. Second operand 195 states. [2019-01-18 14:21:43,149 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:21:43,149 INFO L93 Difference]: Finished difference Result 195 states and 809 transitions. [2019-01-18 14:21:43,149 INFO L276 IsEmpty]: Start isEmpty. Operand 195 states and 809 transitions. [2019-01-18 14:21:43,150 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:21:43,150 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:21:43,150 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:21:43,150 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:21:43,150 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 141 states. [2019-01-18 14:21:43,153 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 141 states to 141 states and 664 transitions. [2019-01-18 14:21:43,153 INFO L78 Accepts]: Start accepts. Automaton has 141 states and 664 transitions. Word has length 6 [2019-01-18 14:21:43,153 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:21:43,153 INFO L480 AbstractCegarLoop]: Abstraction has 141 states and 664 transitions. [2019-01-18 14:21:43,153 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-18 14:21:43,153 INFO L276 IsEmpty]: Start isEmpty. Operand 141 states and 664 transitions. [2019-01-18 14:21:43,153 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-18 14:21:43,153 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:21:43,153 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-18 14:21:43,154 INFO L423 AbstractCegarLoop]: === Iteration 37 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:21:43,154 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:21:43,154 INFO L82 PathProgramCache]: Analyzing trace with hash 897162246, now seen corresponding path program 3 times [2019-01-18 14:21:43,154 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:21:43,154 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:21:43,154 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-18 14:21:43,154 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:21:43,155 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:21:43,157 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:21:43,805 WARN L181 SmtUtils]: Spent 290.00 ms on a formula simplification. DAG size of input: 41 DAG size of output: 21 [2019-01-18 14:21:43,937 INFO L273 TraceCheckUtils]: 0: Hoare triple {13658#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {13660#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-18 14:21:43,938 INFO L273 TraceCheckUtils]: 1: Hoare triple {13660#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {13661#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:21:43,939 INFO L273 TraceCheckUtils]: 2: Hoare triple {13661#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {13662#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:21:43,940 INFO L273 TraceCheckUtils]: 3: Hoare triple {13662#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {13663#(and (<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:21:43,941 INFO L273 TraceCheckUtils]: 4: Hoare triple {13663#(and (<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {13664#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:21:43,941 INFO L273 TraceCheckUtils]: 5: Hoare triple {13664#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {13659#false} is VALID [2019-01-18 14:21:43,942 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:21:43,942 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:21:43,942 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:21:43,942 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-18 14:21:43,942 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-18 14:21:43,943 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:21:43,943 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-18 14:21:43,952 INFO L103 rtionOrderModulation]: Keeping assertion order TERMS_WITH_SMALL_CONSTANTS_FIRST [2019-01-18 14:21:43,952 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder TERMS_WITH_SMALL_CONSTANTS_FIRST (IT: FPandBP) [2019-01-18 14:21:43,956 INFO L249 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2019-01-18 14:21:43,956 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-18 14:21:43,960 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:21:43,961 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:21:43,977 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:21:43,985 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:43,986 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:21:43,998 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:44,000 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:44,000 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:21:44,016 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:44,017 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:44,019 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:44,020 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:21:44,023 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:44,042 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:44,053 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:44,063 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:44,080 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:44,081 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-18 14:21:44,086 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:44,086 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_199|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_199| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:21:44,086 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:21:44,147 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:44,149 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:44,150 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:44,151 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:44,152 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:44,153 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:44,154 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:44,155 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-18 14:21:44,160 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:44,192 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-18 14:21:44,193 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-18 14:21:46,202 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:46,202 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_200|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_200| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_200| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_200| ULTIMATE.start_main_p1) 0) (= .cse0 0) (= (store |v_#memory_int_200| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_200| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:21:46,203 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:21:46,265 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,266 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,268 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,269 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,270 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,272 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,273 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,274 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,275 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,276 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-18 14:21:46,280 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:46,318 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-18 14:21:46,318 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-18 14:21:46,368 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:46,368 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_201|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_201| ULTIMATE.start_main_p3))) (and (= .cse0 0) (= |#memory_int| (store |v_#memory_int_201| ULTIMATE.start_main_p3 (+ .cse0 1))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_201| ULTIMATE.start_main_p1)) (= (select |v_#memory_int_201| ULTIMATE.start_main_p4) 0) (= (+ (select |v_#memory_int_201| ULTIMATE.start_main_p2) 1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:21:46,368 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:21:46,433 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,434 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,435 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,436 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,437 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,439 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,440 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,441 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,442 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,443 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,444 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,444 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:21:46,445 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 83 [2019-01-18 14:21:46,450 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:46,487 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-18 14:21:46,488 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-18 14:21:46,494 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:46,494 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_202|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_202| ULTIMATE.start_main_p1))) (and (= 0 .cse0) (= (select |v_#memory_int_202| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |v_#memory_int_202| ULTIMATE.start_main_p3)) (= (+ (select |v_#memory_int_202| ULTIMATE.start_main_p2) 1) 0) (= (store |v_#memory_int_202| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:21:46,495 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:21:46,558 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,560 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,561 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,562 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,563 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,565 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,566 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,567 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,572 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,573 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,574 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:46,574 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:21:46,575 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 78 [2019-01-18 14:21:46,580 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:46,626 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-18 14:21:46,626 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-18 14:21:46,902 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:46,902 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_203|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_203| ULTIMATE.start_main_p4))) (and (= .cse0 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |v_#memory_int_203| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_203| ULTIMATE.start_main_p1) 1) (= |#memory_int| (store |v_#memory_int_203| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (+ (select |v_#memory_int_203| ULTIMATE.start_main_p2) 1)))) [2019-01-18 14:21:46,903 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-18 14:21:46,945 INFO L273 TraceCheckUtils]: 0: Hoare triple {13658#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {13668#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:21:46,947 INFO L273 TraceCheckUtils]: 1: Hoare triple {13668#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {13672#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:21:46,949 INFO L273 TraceCheckUtils]: 2: Hoare triple {13672#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {13676#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:21:46,951 INFO L273 TraceCheckUtils]: 3: Hoare triple {13676#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {13680#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:21:46,954 INFO L273 TraceCheckUtils]: 4: Hoare triple {13680#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {13684#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-18 14:21:46,955 INFO L273 TraceCheckUtils]: 5: Hoare triple {13684#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p1] >= 0); {13659#false} is VALID [2019-01-18 14:21:46,956 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:21:46,956 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:21:47,049 INFO L273 TraceCheckUtils]: 5: Hoare triple {13664#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {13659#false} is VALID [2019-01-18 14:21:47,050 INFO L273 TraceCheckUtils]: 4: Hoare triple {13691#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {13664#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:21:47,051 INFO L273 TraceCheckUtils]: 3: Hoare triple {13695#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {13691#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:21:47,053 INFO L273 TraceCheckUtils]: 2: Hoare triple {13699#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {13695#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:21:47,060 INFO L273 TraceCheckUtils]: 1: Hoare triple {13703#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {13699#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:21:47,061 INFO L273 TraceCheckUtils]: 0: Hoare triple {13658#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {13703#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:21:47,062 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 6 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:21:47,080 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:21:47,081 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 14 [2019-01-18 14:21:47,081 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:21:47,081 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-18 14:21:47,081 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:21:47,081 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-18 14:21:47,099 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-18 14:21:47,100 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-18 14:21:47,100 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-18 14:21:47,100 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=98, Invalid=142, Unknown=0, NotChecked=0, Total=240 [2019-01-18 14:21:47,100 INFO L87 Difference]: Start difference. First operand 141 states and 664 transitions. Second operand 12 states. [2019-01-18 14:21:50,237 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:21:50,238 INFO L93 Difference]: Finished difference Result 205 states and 871 transitions. [2019-01-18 14:21:50,238 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-01-18 14:21:50,238 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-18 14:21:50,238 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:21:50,238 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-18 14:21:50,238 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 66 transitions. [2019-01-18 14:21:50,239 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-18 14:21:50,239 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 66 transitions. [2019-01-18 14:21:50,239 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 66 transitions. [2019-01-18 14:21:50,336 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-18 14:21:50,341 INFO L225 Difference]: With dead ends: 205 [2019-01-18 14:21:50,341 INFO L226 Difference]: Without dead ends: 197 [2019-01-18 14:21:50,342 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 90 ImplicationChecksByTransitivity, 0.9s TimeCoverageRelationStatistics Valid=131, Invalid=211, Unknown=0, NotChecked=0, Total=342 [2019-01-18 14:21:50,342 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 197 states. [2019-01-18 14:21:52,264 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 197 to 149. [2019-01-18 14:21:52,265 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:21:52,265 INFO L82 GeneralOperation]: Start isEquivalent. First operand 197 states. Second operand 149 states. [2019-01-18 14:21:52,265 INFO L74 IsIncluded]: Start isIncluded. First operand 197 states. Second operand 149 states. [2019-01-18 14:21:52,265 INFO L87 Difference]: Start difference. First operand 197 states. Second operand 149 states. [2019-01-18 14:21:52,271 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:21:52,271 INFO L93 Difference]: Finished difference Result 197 states and 852 transitions. [2019-01-18 14:21:52,271 INFO L276 IsEmpty]: Start isEmpty. Operand 197 states and 852 transitions. [2019-01-18 14:21:52,272 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:21:52,272 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:21:52,272 INFO L74 IsIncluded]: Start isIncluded. First operand 149 states. Second operand 197 states. [2019-01-18 14:21:52,272 INFO L87 Difference]: Start difference. First operand 149 states. Second operand 197 states. [2019-01-18 14:21:52,278 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:21:52,278 INFO L93 Difference]: Finished difference Result 197 states and 852 transitions. [2019-01-18 14:21:52,279 INFO L276 IsEmpty]: Start isEmpty. Operand 197 states and 852 transitions. [2019-01-18 14:21:52,279 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:21:52,279 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:21:52,279 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:21:52,280 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:21:52,280 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 149 states. [2019-01-18 14:21:52,283 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 149 states to 149 states and 702 transitions. [2019-01-18 14:21:52,283 INFO L78 Accepts]: Start accepts. Automaton has 149 states and 702 transitions. Word has length 6 [2019-01-18 14:21:52,283 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:21:52,283 INFO L480 AbstractCegarLoop]: Abstraction has 149 states and 702 transitions. [2019-01-18 14:21:52,283 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-18 14:21:52,283 INFO L276 IsEmpty]: Start isEmpty. Operand 149 states and 702 transitions. [2019-01-18 14:21:52,283 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-18 14:21:52,283 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:21:52,283 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-18 14:21:52,284 INFO L423 AbstractCegarLoop]: === Iteration 38 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:21:52,284 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:21:52,284 INFO L82 PathProgramCache]: Analyzing trace with hash 900929556, now seen corresponding path program 1 times [2019-01-18 14:21:52,284 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:21:52,284 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:21:52,285 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-18 14:21:52,285 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:21:52,285 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:21:52,287 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:21:52,395 INFO L273 TraceCheckUtils]: 0: Hoare triple {14760#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {14762#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:21:52,396 INFO L273 TraceCheckUtils]: 1: Hoare triple {14762#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {14763#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:21:52,397 INFO L273 TraceCheckUtils]: 2: Hoare triple {14763#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {14764#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:52,397 INFO L273 TraceCheckUtils]: 3: Hoare triple {14764#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {14764#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:52,398 INFO L273 TraceCheckUtils]: 4: Hoare triple {14764#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {14764#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:52,399 INFO L273 TraceCheckUtils]: 5: Hoare triple {14764#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {14761#false} is VALID [2019-01-18 14:21:52,399 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-18 14:21:52,399 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:21:52,399 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:21:52,400 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-18 14:21:52,400 INFO L207 CegarAbsIntRunner]: [0], [14], [16], [20], [22], [23] [2019-01-18 14:21:52,401 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:21:52,401 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:21:52,411 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:21:52,412 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:21:52,412 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:21:52,412 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:21:52,412 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:21:52,412 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 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-18 14:21:52,424 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:21:52,424 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:21:52,427 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:21:52,431 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:21:52,431 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:21:52,452 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:21:52,462 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-18 14:21:52,472 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-01-18 14:21:52,487 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:52,488 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 1 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 25 [2019-01-18 14:21:52,492 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:52,503 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:52,513 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:52,522 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:52,535 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-18 14:21:52,535 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:19, output treesize:24 [2019-01-18 14:21:52,540 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:52,540 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_208|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_208| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0))) [2019-01-18 14:21:52,540 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:21:52,582 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:52,583 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:52,584 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 21 [2019-01-18 14:21:52,587 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:52,595 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:52,595 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:24, output treesize:14 [2019-01-18 14:21:52,606 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:52,607 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_209|]. (let ((.cse0 (select |v_#memory_int_209| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_209| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 (select |v_#memory_int_209| ULTIMATE.start_main_p4)) (= 0 .cse0))) [2019-01-18 14:21:52,607 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:21:52,641 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:52,642 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:52,643 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:52,644 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:52,645 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 4 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 27 [2019-01-18 14:21:52,648 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:52,661 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-18 14:21:52,661 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:24, output treesize:14 [2019-01-18 14:21:54,677 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:54,677 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_210|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_210| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= |#memory_int| (store |v_#memory_int_210| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= (select |v_#memory_int_210| ULTIMATE.start_main_p3) 1))) [2019-01-18 14:21:54,677 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) [2019-01-18 14:21:54,726 INFO L273 TraceCheckUtils]: 0: Hoare triple {14760#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {14768#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:21:54,727 INFO L273 TraceCheckUtils]: 1: Hoare triple {14768#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {14772#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:21:54,728 INFO L273 TraceCheckUtils]: 2: Hoare triple {14772#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {14776#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))))} is VALID [2019-01-18 14:21:54,729 INFO L273 TraceCheckUtils]: 3: Hoare triple {14776#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))))} assume #memory_int[main_p1] >= 0; {14776#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))))} is VALID [2019-01-18 14:21:54,730 INFO L273 TraceCheckUtils]: 4: Hoare triple {14776#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))))} assume #memory_int[main_p2] <= 0; {14776#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))))} is VALID [2019-01-18 14:21:54,731 INFO L273 TraceCheckUtils]: 5: Hoare triple {14776#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))))} assume !(#memory_int[main_p3] >= 0); {14761#false} is VALID [2019-01-18 14:21:54,731 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-18 14:21:54,731 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:21:54,790 INFO L273 TraceCheckUtils]: 5: Hoare triple {14786#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {14761#false} is VALID [2019-01-18 14:21:54,791 INFO L273 TraceCheckUtils]: 4: Hoare triple {14786#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {14786#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:54,791 INFO L273 TraceCheckUtils]: 3: Hoare triple {14786#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {14786#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:54,792 INFO L273 TraceCheckUtils]: 2: Hoare triple {14796#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {14786#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:54,793 INFO L273 TraceCheckUtils]: 1: Hoare triple {14800#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {14796#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:54,795 INFO L273 TraceCheckUtils]: 0: Hoare triple {14760#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {14800#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:54,795 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-18 14:21:54,815 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:21:54,815 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-18 14:21:54,815 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:21:54,815 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-18 14:21:54,815 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:21:54,815 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:21:54,830 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-18 14:21:54,830 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:21:54,831 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:21:54,831 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:21:54,831 INFO L87 Difference]: Start difference. First operand 149 states and 702 transitions. Second operand 8 states. [2019-01-18 14:21:57,000 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:21:57,000 INFO L93 Difference]: Finished difference Result 165 states and 720 transitions. [2019-01-18 14:21:57,000 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-18 14:21:57,000 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-18 14:21:57,000 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:21:57,001 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:21:57,001 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 46 transitions. [2019-01-18 14:21:57,001 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:21:57,001 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 46 transitions. [2019-01-18 14:21:57,002 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 46 transitions. [2019-01-18 14:21:57,057 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-18 14:21:57,060 INFO L225 Difference]: With dead ends: 165 [2019-01-18 14:21:57,061 INFO L226 Difference]: Without dead ends: 164 [2019-01-18 14:21:57,061 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 4 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-01-18 14:21:57,061 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 164 states. [2019-01-18 14:21:58,652 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 164 to 149. [2019-01-18 14:21:58,652 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:21:58,652 INFO L82 GeneralOperation]: Start isEquivalent. First operand 164 states. Second operand 149 states. [2019-01-18 14:21:58,652 INFO L74 IsIncluded]: Start isIncluded. First operand 164 states. Second operand 149 states. [2019-01-18 14:21:58,652 INFO L87 Difference]: Start difference. First operand 164 states. Second operand 149 states. [2019-01-18 14:21:58,658 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:21:58,658 INFO L93 Difference]: Finished difference Result 164 states and 718 transitions. [2019-01-18 14:21:58,658 INFO L276 IsEmpty]: Start isEmpty. Operand 164 states and 718 transitions. [2019-01-18 14:21:58,658 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:21:58,658 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:21:58,659 INFO L74 IsIncluded]: Start isIncluded. First operand 149 states. Second operand 164 states. [2019-01-18 14:21:58,659 INFO L87 Difference]: Start difference. First operand 149 states. Second operand 164 states. [2019-01-18 14:21:58,663 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:21:58,664 INFO L93 Difference]: Finished difference Result 164 states and 718 transitions. [2019-01-18 14:21:58,664 INFO L276 IsEmpty]: Start isEmpty. Operand 164 states and 718 transitions. [2019-01-18 14:21:58,664 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:21:58,664 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:21:58,665 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:21:58,665 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:21:58,665 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 149 states. [2019-01-18 14:21:58,669 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 149 states to 149 states and 702 transitions. [2019-01-18 14:21:58,669 INFO L78 Accepts]: Start accepts. Automaton has 149 states and 702 transitions. Word has length 6 [2019-01-18 14:21:58,669 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:21:58,669 INFO L480 AbstractCegarLoop]: Abstraction has 149 states and 702 transitions. [2019-01-18 14:21:58,670 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:21:58,670 INFO L276 IsEmpty]: Start isEmpty. Operand 149 states and 702 transitions. [2019-01-18 14:21:58,670 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-18 14:21:58,670 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:21:58,670 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-18 14:21:58,671 INFO L423 AbstractCegarLoop]: === Iteration 39 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:21:58,671 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:21:58,671 INFO L82 PathProgramCache]: Analyzing trace with hash 900750810, now seen corresponding path program 1 times [2019-01-18 14:21:58,671 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:21:58,671 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:21:58,672 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:21:58,672 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:21:58,672 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:21:58,674 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:21:58,790 INFO L273 TraceCheckUtils]: 0: Hoare triple {15722#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {15724#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:21:58,791 INFO L273 TraceCheckUtils]: 1: Hoare triple {15724#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {15725#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:21:58,792 INFO L273 TraceCheckUtils]: 2: Hoare triple {15725#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {15726#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:58,793 INFO L273 TraceCheckUtils]: 3: Hoare triple {15726#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {15726#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:58,793 INFO L273 TraceCheckUtils]: 4: Hoare triple {15726#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {15726#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:58,794 INFO L273 TraceCheckUtils]: 5: Hoare triple {15726#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {15723#false} is VALID [2019-01-18 14:21:58,794 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-18 14:21:58,794 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:21:58,795 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:21:58,795 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-18 14:21:58,795 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [20], [22], [23] [2019-01-18 14:21:58,796 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:21:58,796 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:21:58,805 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:21:58,805 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:21:58,805 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:21:58,805 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:21:58,805 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:21:58,805 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 37 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 37 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-18 14:21:58,815 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:21:58,815 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:21:58,819 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:21:58,827 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:21:58,827 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:21:58,850 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:21:58,858 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-18 14:21:58,873 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:58,873 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-01-18 14:21:58,889 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:58,890 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:58,891 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-01-18 14:21:58,895 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:58,909 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:58,918 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:58,928 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:21:58,944 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-18 14:21:58,945 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:22, output treesize:27 [2019-01-18 14:21:58,950 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:58,951 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_213|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_213| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:21:58,951 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:21:59,075 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:59,077 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:59,078 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:59,079 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:59,080 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 34 [2019-01-18 14:21:59,084 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:59,105 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-18 14:21:59,105 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-18 14:21:59,111 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:59,111 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_214|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_214| ULTIMATE.start_main_p3))) (and (= (store |v_#memory_int_214| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_214| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_214| ULTIMATE.start_main_p4) 0) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:21:59,112 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:21:59,155 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:59,156 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:59,157 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:59,159 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:59,160 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:59,161 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:21:59,162 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 48 [2019-01-18 14:21:59,200 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:21:59,221 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-18 14:21:59,222 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:32, output treesize:22 [2019-01-18 14:21:59,291 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:21:59,292 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_215|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_215| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= 0 (select |v_#memory_int_215| ULTIMATE.start_main_p4)) (= (select |v_#memory_int_215| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (store |v_#memory_int_215| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|))) [2019-01-18 14:21:59,292 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:21:59,347 INFO L273 TraceCheckUtils]: 0: Hoare triple {15722#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {15730#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:59,349 INFO L273 TraceCheckUtils]: 1: Hoare triple {15730#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {15734#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:59,351 INFO L273 TraceCheckUtils]: 2: Hoare triple {15734#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {15738#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-18 14:21:59,352 INFO L273 TraceCheckUtils]: 3: Hoare triple {15738#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p1] >= 0; {15738#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-18 14:21:59,353 INFO L273 TraceCheckUtils]: 4: Hoare triple {15738#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p2] <= 0; {15738#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-18 14:21:59,354 INFO L273 TraceCheckUtils]: 5: Hoare triple {15738#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p3] >= 0); {15723#false} is VALID [2019-01-18 14:21:59,354 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-18 14:21:59,355 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:21:59,404 INFO L273 TraceCheckUtils]: 5: Hoare triple {15748#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {15723#false} is VALID [2019-01-18 14:21:59,404 INFO L273 TraceCheckUtils]: 4: Hoare triple {15748#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {15748#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:59,405 INFO L273 TraceCheckUtils]: 3: Hoare triple {15748#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {15748#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:59,406 INFO L273 TraceCheckUtils]: 2: Hoare triple {15758#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {15748#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:59,407 INFO L273 TraceCheckUtils]: 1: Hoare triple {15762#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {15758#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:59,409 INFO L273 TraceCheckUtils]: 0: Hoare triple {15722#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {15762#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:21:59,410 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-18 14:21:59,447 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:21:59,447 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-18 14:21:59,447 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:21:59,448 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-18 14:21:59,448 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:21:59,448 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:21:59,465 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-18 14:21:59,466 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:21:59,466 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:21:59,466 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:21:59,466 INFO L87 Difference]: Start difference. First operand 149 states and 702 transitions. Second operand 8 states. [2019-01-18 14:22:02,191 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:22:02,191 INFO L93 Difference]: Finished difference Result 174 states and 765 transitions. [2019-01-18 14:22:02,191 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-18 14:22:02,191 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-18 14:22:02,191 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:22:02,192 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:22:02,192 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 46 transitions. [2019-01-18 14:22:02,192 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:22:02,192 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 46 transitions. [2019-01-18 14:22:02,192 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 46 transitions. [2019-01-18 14:22:02,283 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-18 14:22:02,287 INFO L225 Difference]: With dead ends: 174 [2019-01-18 14:22:02,287 INFO L226 Difference]: Without dead ends: 173 [2019-01-18 14:22:02,287 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 5 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-01-18 14:22:02,288 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 173 states. [2019-01-18 14:22:04,351 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 173 to 158. [2019-01-18 14:22:04,351 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:22:04,352 INFO L82 GeneralOperation]: Start isEquivalent. First operand 173 states. Second operand 158 states. [2019-01-18 14:22:04,352 INFO L74 IsIncluded]: Start isIncluded. First operand 173 states. Second operand 158 states. [2019-01-18 14:22:04,352 INFO L87 Difference]: Start difference. First operand 173 states. Second operand 158 states. [2019-01-18 14:22:04,357 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:22:04,357 INFO L93 Difference]: Finished difference Result 173 states and 763 transitions. [2019-01-18 14:22:04,357 INFO L276 IsEmpty]: Start isEmpty. Operand 173 states and 763 transitions. [2019-01-18 14:22:04,357 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:22:04,357 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:22:04,357 INFO L74 IsIncluded]: Start isIncluded. First operand 158 states. Second operand 173 states. [2019-01-18 14:22:04,357 INFO L87 Difference]: Start difference. First operand 158 states. Second operand 173 states. [2019-01-18 14:22:04,361 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:22:04,361 INFO L93 Difference]: Finished difference Result 173 states and 763 transitions. [2019-01-18 14:22:04,362 INFO L276 IsEmpty]: Start isEmpty. Operand 173 states and 763 transitions. [2019-01-18 14:22:04,362 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:22:04,362 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:22:04,362 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:22:04,362 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:22:04,362 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 158 states. [2019-01-18 14:22:04,365 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 158 states to 158 states and 747 transitions. [2019-01-18 14:22:04,365 INFO L78 Accepts]: Start accepts. Automaton has 158 states and 747 transitions. Word has length 6 [2019-01-18 14:22:04,365 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:22:04,365 INFO L480 AbstractCegarLoop]: Abstraction has 158 states and 747 transitions. [2019-01-18 14:22:04,366 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:22:04,366 INFO L276 IsEmpty]: Start isEmpty. Operand 158 states and 747 transitions. [2019-01-18 14:22:04,366 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-18 14:22:04,366 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:22:04,366 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1] [2019-01-18 14:22:04,366 INFO L423 AbstractCegarLoop]: === Iteration 40 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:22:04,366 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:22:04,366 INFO L82 PathProgramCache]: Analyzing trace with hash -2078696478, now seen corresponding path program 1 times [2019-01-18 14:22:04,367 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:22:04,367 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:22:04,367 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:22:04,367 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:22:04,367 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:22:04,369 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:22:04,439 INFO L273 TraceCheckUtils]: 0: Hoare triple {16738#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {16740#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:22:04,440 INFO L273 TraceCheckUtils]: 1: Hoare triple {16740#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {16741#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-18 14:22:04,441 INFO L273 TraceCheckUtils]: 2: Hoare triple {16741#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {16742#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} is VALID [2019-01-18 14:22:04,441 INFO L273 TraceCheckUtils]: 3: Hoare triple {16742#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} assume #memory_int[main_p1] >= 0; {16742#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} is VALID [2019-01-18 14:22:04,441 INFO L273 TraceCheckUtils]: 4: Hoare triple {16742#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} assume #memory_int[main_p2] <= 0; {16742#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} is VALID [2019-01-18 14:22:04,442 INFO L273 TraceCheckUtils]: 5: Hoare triple {16742#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} assume #memory_int[main_p3] >= 0; {16742#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} is VALID [2019-01-18 14:22:04,442 INFO L273 TraceCheckUtils]: 6: Hoare triple {16742#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} assume !(#memory_int[main_p4] <= 0); {16739#false} is VALID [2019-01-18 14:22:04,442 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-18 14:22:04,443 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:22:04,443 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:22:04,443 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-18 14:22:04,443 INFO L207 CegarAbsIntRunner]: [0], [16], [20], [22], [24], [25] [2019-01-18 14:22:04,444 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:22:04,445 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:22:04,471 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:22:04,471 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-18 14:22:04,472 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:22:04,472 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:22:04,472 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:22:04,472 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 38 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 38 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-18 14:22:04,481 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:22:04,481 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:22:04,485 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:22:04,488 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:22:04,488 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:22:04,504 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:22:04,537 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-18 14:22:04,673 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-01-18 14:22:04,701 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 0 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 21 [2019-01-18 14:22:04,722 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:22:04,844 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:22:04,862 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:22:04,871 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:22:04,882 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-18 14:22:04,883 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 4 variables, input treesize:15, output treesize:21 [2019-01-18 14:22:04,886 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:22:04,887 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_218|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (= |#memory_int| (store (store (store (store |v_#memory_int_218| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) [2019-01-18 14:22:04,887 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:22:04,903 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:04,903 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 5 [2019-01-18 14:22:04,905 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:22:04,908 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:22:04,908 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:16, output treesize:5 [2019-01-18 14:22:04,918 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:22:04,918 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_219|]. (let ((.cse0 (select |v_#memory_int_219| ULTIMATE.start_main_p4))) (and (= |#memory_int| (store |v_#memory_int_219| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= 0 .cse0))) [2019-01-18 14:22:04,918 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) [2019-01-18 14:22:04,937 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:04,938 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 5 [2019-01-18 14:22:04,940 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:22:04,942 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:22:04,942 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:18, output treesize:5 [2019-01-18 14:22:04,951 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:22:04,952 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_220|]. (let ((.cse0 (select |v_#memory_int_220| ULTIMATE.start_main_p4))) (and (= (store |v_#memory_int_220| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= 0 (+ .cse0 1)))) [2019-01-18 14:22:04,952 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (= (select |#memory_int| ULTIMATE.start_main_p4) (- 2)) [2019-01-18 14:22:04,967 INFO L273 TraceCheckUtils]: 0: Hoare triple {16738#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {16740#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:22:04,968 INFO L273 TraceCheckUtils]: 1: Hoare triple {16740#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {16749#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-18 14:22:04,969 INFO L273 TraceCheckUtils]: 2: Hoare triple {16749#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {16753#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} is VALID [2019-01-18 14:22:04,970 INFO L273 TraceCheckUtils]: 3: Hoare triple {16753#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} assume #memory_int[main_p1] >= 0; {16753#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} is VALID [2019-01-18 14:22:04,970 INFO L273 TraceCheckUtils]: 4: Hoare triple {16753#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} assume #memory_int[main_p2] <= 0; {16753#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} is VALID [2019-01-18 14:22:04,973 INFO L273 TraceCheckUtils]: 5: Hoare triple {16753#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} assume #memory_int[main_p3] >= 0; {16753#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} is VALID [2019-01-18 14:22:04,973 INFO L273 TraceCheckUtils]: 6: Hoare triple {16753#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} assume !(#memory_int[main_p4] <= 0); {16739#false} is VALID [2019-01-18 14:22:04,974 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-18 14:22:04,974 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:22:05,025 INFO L273 TraceCheckUtils]: 6: Hoare triple {16766#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {16739#false} is VALID [2019-01-18 14:22:05,025 INFO L273 TraceCheckUtils]: 5: Hoare triple {16766#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {16766#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:22:05,026 INFO L273 TraceCheckUtils]: 4: Hoare triple {16766#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {16766#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:22:05,026 INFO L273 TraceCheckUtils]: 3: Hoare triple {16766#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {16766#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:22:05,027 INFO L273 TraceCheckUtils]: 2: Hoare triple {16779#(<= (select |#memory_int| ULTIMATE.start_main_p4) 1)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {16766#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:22:05,028 INFO L273 TraceCheckUtils]: 1: Hoare triple {16783#(<= (select |#memory_int| ULTIMATE.start_main_p4) 2)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {16779#(<= (select |#memory_int| ULTIMATE.start_main_p4) 1)} is VALID [2019-01-18 14:22:05,030 INFO L273 TraceCheckUtils]: 0: Hoare triple {16738#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {16783#(<= (select |#memory_int| ULTIMATE.start_main_p4) 2)} is VALID [2019-01-18 14:22:05,030 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 3 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:22:05,049 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-01-18 14:22:05,050 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [3] imperfect sequences [3, 3] total 8 [2019-01-18 14:22:05,050 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-18 14:22:05,050 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 7 [2019-01-18 14:22:05,050 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:22:05,050 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states. [2019-01-18 14:22:05,058 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 7 edges. 7 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:22:05,059 INFO L459 AbstractCegarLoop]: Interpolant automaton has 5 states [2019-01-18 14:22:05,059 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2019-01-18 14:22:05,059 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=51, Unknown=0, NotChecked=0, Total=90 [2019-01-18 14:22:05,059 INFO L87 Difference]: Start difference. First operand 158 states and 747 transitions. Second operand 5 states. [2019-01-18 14:22:11,642 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:22:11,642 INFO L93 Difference]: Finished difference Result 357 states and 1628 transitions. [2019-01-18 14:22:11,642 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-18 14:22:11,642 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 7 [2019-01-18 14:22:11,642 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:22:11,642 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2019-01-18 14:22:11,643 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 45 transitions. [2019-01-18 14:22:11,643 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2019-01-18 14:22:11,643 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 45 transitions. [2019-01-18 14:22:11,643 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 45 transitions. [2019-01-18 14:22:11,687 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:22:11,697 INFO L225 Difference]: With dead ends: 357 [2019-01-18 14:22:11,697 INFO L226 Difference]: Without dead ends: 353 [2019-01-18 14:22:11,697 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 6 SyntacticMatches, 1 SemanticMatches, 8 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 18 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=39, Invalid=51, Unknown=0, NotChecked=0, Total=90 [2019-01-18 14:22:11,697 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 353 states. [2019-01-18 14:22:17,808 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 353 to 329. [2019-01-18 14:22:17,808 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:22:17,808 INFO L82 GeneralOperation]: Start isEquivalent. First operand 353 states. Second operand 329 states. [2019-01-18 14:22:17,808 INFO L74 IsIncluded]: Start isIncluded. First operand 353 states. Second operand 329 states. [2019-01-18 14:22:17,809 INFO L87 Difference]: Start difference. First operand 353 states. Second operand 329 states. [2019-01-18 14:22:17,819 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:22:17,820 INFO L93 Difference]: Finished difference Result 353 states and 1611 transitions. [2019-01-18 14:22:17,820 INFO L276 IsEmpty]: Start isEmpty. Operand 353 states and 1611 transitions. [2019-01-18 14:22:17,820 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:22:17,820 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:22:17,820 INFO L74 IsIncluded]: Start isIncluded. First operand 329 states. Second operand 353 states. [2019-01-18 14:22:17,821 INFO L87 Difference]: Start difference. First operand 329 states. Second operand 353 states. [2019-01-18 14:22:17,830 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:22:17,830 INFO L93 Difference]: Finished difference Result 353 states and 1611 transitions. [2019-01-18 14:22:17,831 INFO L276 IsEmpty]: Start isEmpty. Operand 353 states and 1611 transitions. [2019-01-18 14:22:17,831 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:22:17,831 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:22:17,831 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:22:17,831 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:22:17,831 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 329 states. [2019-01-18 14:22:17,840 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 329 states to 329 states and 1593 transitions. [2019-01-18 14:22:17,841 INFO L78 Accepts]: Start accepts. Automaton has 329 states and 1593 transitions. Word has length 7 [2019-01-18 14:22:17,841 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:22:17,841 INFO L480 AbstractCegarLoop]: Abstraction has 329 states and 1593 transitions. [2019-01-18 14:22:17,841 INFO L481 AbstractCegarLoop]: Interpolant automaton has 5 states. [2019-01-18 14:22:17,841 INFO L276 IsEmpty]: Start isEmpty. Operand 329 states and 1593 transitions. [2019-01-18 14:22:17,841 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-18 14:22:17,841 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:22:17,841 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-18 14:22:17,842 INFO L423 AbstractCegarLoop]: === Iteration 41 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:22:17,842 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:22:17,842 INFO L82 PathProgramCache]: Analyzing trace with hash -2087931688, now seen corresponding path program 1 times [2019-01-18 14:22:17,842 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:22:17,843 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:22:17,843 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:22:17,843 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:22:17,843 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:22:17,845 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:22:17,988 INFO L273 TraceCheckUtils]: 0: Hoare triple {18806#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {18808#(and (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:22:17,989 INFO L273 TraceCheckUtils]: 1: Hoare triple {18808#(and (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {18809#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-18 14:22:17,990 INFO L273 TraceCheckUtils]: 2: Hoare triple {18809#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {18810#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-18 14:22:17,991 INFO L273 TraceCheckUtils]: 3: Hoare triple {18810#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p1] >= 0; {18810#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-18 14:22:17,991 INFO L273 TraceCheckUtils]: 4: Hoare triple {18810#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p2] <= 0; {18810#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-18 14:22:17,992 INFO L273 TraceCheckUtils]: 5: Hoare triple {18810#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p3] >= 0; {18810#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-18 14:22:17,992 INFO L273 TraceCheckUtils]: 6: Hoare triple {18810#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume !(#memory_int[main_p4] <= 0); {18807#false} is VALID [2019-01-18 14:22:17,993 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-18 14:22:17,993 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:22:17,993 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:22:17,993 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-18 14:22:17,994 INFO L207 CegarAbsIntRunner]: [0], [6], [16], [20], [22], [24], [25] [2019-01-18 14:22:17,995 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:22:17,995 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:22:18,004 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:22:18,005 INFO L272 AbstractInterpreter]: Visited 7 different actions 7 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 3. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:22:18,005 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:22:18,005 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:22:18,005 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:22:18,005 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 39 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 39 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-18 14:22:18,016 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:22:18,016 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:22:18,020 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:22:18,026 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:22:18,026 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:22:18,057 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:22:18,070 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:18,071 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:22:18,083 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:18,085 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:18,085 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:22:18,103 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:18,104 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:18,106 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:18,106 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:22:18,112 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:22:18,132 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:22:18,145 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:22:18,154 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:22:18,172 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-18 14:22:18,173 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-18 14:22:18,179 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:22:18,180 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_223|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_223| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:22:18,180 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:22:18,238 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:18,239 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:18,240 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:18,242 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:18,243 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:18,244 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:18,246 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:18,246 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-18 14:22:18,253 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:22:18,283 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-18 14:22:18,283 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-18 14:22:18,289 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:22:18,290 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_224|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_224| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_224| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_224| ULTIMATE.start_main_p1) 0) (= 0 .cse0) (= |#memory_int| (store |v_#memory_int_224| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= 0 (select |v_#memory_int_224| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:22:18,290 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:22:18,349 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:18,350 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:18,351 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:18,353 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:18,354 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:18,355 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:18,357 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:18,358 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:18,359 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:18,360 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-18 14:22:18,366 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:22:18,399 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-18 14:22:18,400 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-18 14:22:18,425 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:22:18,425 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_225|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_225| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_225| ULTIMATE.start_main_p1 (+ .cse0 1))) (= (+ (select |v_#memory_int_225| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |v_#memory_int_225| ULTIMATE.start_main_p2)) (= (select |v_#memory_int_225| ULTIMATE.start_main_p3) 0) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:22:18,425 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:22:18,524 INFO L273 TraceCheckUtils]: 0: Hoare triple {18806#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {18814#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:22:18,527 INFO L273 TraceCheckUtils]: 1: Hoare triple {18814#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {18818#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:22:18,529 INFO L273 TraceCheckUtils]: 2: Hoare triple {18818#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {18822#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:22:18,530 INFO L273 TraceCheckUtils]: 3: Hoare triple {18822#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p1] >= 0; {18822#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:22:18,531 INFO L273 TraceCheckUtils]: 4: Hoare triple {18822#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p2] <= 0; {18822#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:22:18,532 INFO L273 TraceCheckUtils]: 5: Hoare triple {18822#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p3] >= 0; {18822#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:22:18,533 INFO L273 TraceCheckUtils]: 6: Hoare triple {18822#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p4] <= 0); {18807#false} is VALID [2019-01-18 14:22:18,534 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:22:18,534 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:22:18,581 INFO L273 TraceCheckUtils]: 6: Hoare triple {18835#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {18807#false} is VALID [2019-01-18 14:22:18,582 INFO L273 TraceCheckUtils]: 5: Hoare triple {18835#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {18835#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:22:18,582 INFO L273 TraceCheckUtils]: 4: Hoare triple {18835#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {18835#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:22:18,582 INFO L273 TraceCheckUtils]: 3: Hoare triple {18835#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {18835#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:22:18,583 INFO L273 TraceCheckUtils]: 2: Hoare triple {18848#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {18835#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:22:18,584 INFO L273 TraceCheckUtils]: 1: Hoare triple {18852#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {18848#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:22:18,586 INFO L273 TraceCheckUtils]: 0: Hoare triple {18806#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {18852#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:22:18,586 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-18 14:22:18,606 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:22:18,607 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-18 14:22:18,607 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:22:18,607 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 7 [2019-01-18 14:22:18,607 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:22:18,607 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:22:18,631 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:22:18,631 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:22:18,631 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:22:18,631 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:22:18,632 INFO L87 Difference]: Start difference. First operand 329 states and 1593 transitions. Second operand 8 states. [2019-01-18 14:22:26,624 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:22:26,625 INFO L93 Difference]: Finished difference Result 348 states and 1627 transitions. [2019-01-18 14:22:26,625 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-18 14:22:26,625 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 7 [2019-01-18 14:22:26,625 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:22:26,625 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:22:26,625 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 45 transitions. [2019-01-18 14:22:26,625 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:22:26,626 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 45 transitions. [2019-01-18 14:22:26,626 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 45 transitions. [2019-01-18 14:22:26,683 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:22:26,692 INFO L225 Difference]: With dead ends: 348 [2019-01-18 14:22:26,692 INFO L226 Difference]: Without dead ends: 338 [2019-01-18 14:22:26,692 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 7 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-01-18 14:22:26,692 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 338 states. [2019-01-18 14:22:34,675 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 338 to 333. [2019-01-18 14:22:34,676 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:22:34,676 INFO L82 GeneralOperation]: Start isEquivalent. First operand 338 states. Second operand 333 states. [2019-01-18 14:22:34,676 INFO L74 IsIncluded]: Start isIncluded. First operand 338 states. Second operand 333 states. [2019-01-18 14:22:34,676 INFO L87 Difference]: Start difference. First operand 338 states. Second operand 333 states. [2019-01-18 14:22:34,686 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:22:34,687 INFO L93 Difference]: Finished difference Result 338 states and 1608 transitions. [2019-01-18 14:22:34,687 INFO L276 IsEmpty]: Start isEmpty. Operand 338 states and 1608 transitions. [2019-01-18 14:22:34,687 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:22:34,687 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:22:34,687 INFO L74 IsIncluded]: Start isIncluded. First operand 333 states. Second operand 338 states. [2019-01-18 14:22:34,687 INFO L87 Difference]: Start difference. First operand 333 states. Second operand 338 states. [2019-01-18 14:22:34,699 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:22:34,699 INFO L93 Difference]: Finished difference Result 338 states and 1608 transitions. [2019-01-18 14:22:34,699 INFO L276 IsEmpty]: Start isEmpty. Operand 338 states and 1608 transitions. [2019-01-18 14:22:34,700 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:22:34,700 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:22:34,700 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:22:34,700 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:22:34,700 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 333 states. [2019-01-18 14:22:34,708 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 333 states to 333 states and 1604 transitions. [2019-01-18 14:22:34,708 INFO L78 Accepts]: Start accepts. Automaton has 333 states and 1604 transitions. Word has length 7 [2019-01-18 14:22:34,709 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:22:34,709 INFO L480 AbstractCegarLoop]: Abstraction has 333 states and 1604 transitions. [2019-01-18 14:22:34,709 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:22:34,709 INFO L276 IsEmpty]: Start isEmpty. Operand 333 states and 1604 transitions. [2019-01-18 14:22:34,709 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-18 14:22:34,709 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:22:34,709 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-18 14:22:34,710 INFO L423 AbstractCegarLoop]: === Iteration 42 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:22:34,710 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:22:34,710 INFO L82 PathProgramCache]: Analyzing trace with hash -2088231584, now seen corresponding path program 1 times [2019-01-18 14:22:34,710 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:22:34,710 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:22:34,710 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:22:34,711 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:22:34,711 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:22:34,713 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:22:35,756 WARN L181 SmtUtils]: Spent 666.00 ms on a formula simplification. DAG size of input: 39 DAG size of output: 21 [2019-01-18 14:22:35,930 INFO L273 TraceCheckUtils]: 0: Hoare triple {20850#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {20852#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:22:35,932 INFO L273 TraceCheckUtils]: 1: Hoare triple {20852#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {20853#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:22:35,933 INFO L273 TraceCheckUtils]: 2: Hoare triple {20853#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {20853#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:22:35,934 INFO L273 TraceCheckUtils]: 3: Hoare triple {20853#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {20854#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:22:35,934 INFO L273 TraceCheckUtils]: 4: Hoare triple {20854#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p1] >= 0; {20854#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:22:35,935 INFO L273 TraceCheckUtils]: 5: Hoare triple {20854#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p2] <= 0; {20855#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-18 14:22:35,935 INFO L273 TraceCheckUtils]: 6: Hoare triple {20855#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {20851#false} is VALID [2019-01-18 14:22:35,936 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-18 14:22:35,936 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:22:35,936 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:22:35,936 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-18 14:22:35,937 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [16], [20], [22], [23] [2019-01-18 14:22:35,938 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:22:35,938 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:22:35,946 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:22:35,946 INFO L272 AbstractInterpreter]: Visited 7 different actions 7 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 3. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-18 14:22:35,946 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:22:35,946 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:22:35,946 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:22:35,947 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 40 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 40 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-18 14:22:35,956 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:22:35,956 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:22:35,962 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:22:35,965 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:22:35,965 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:22:35,993 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:22:36,003 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:36,004 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:22:36,020 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:36,021 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:36,022 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:22:36,044 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:36,046 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:36,047 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:36,048 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:22:36,055 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:22:36,079 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:22:36,091 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:22:36,103 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:22:36,121 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:22:36,121 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-18 14:22:36,127 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:22:36,127 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_228|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_228| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:22:36,127 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:22:36,204 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:36,205 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:36,207 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:36,208 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:36,209 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:36,210 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:36,211 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:36,212 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-18 14:22:36,220 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:22:36,250 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-18 14:22:36,250 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-18 14:22:38,262 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:22:38,262 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_229|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_229| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (select |v_#memory_int_229| ULTIMATE.start_main_p2) 0) (= (store |v_#memory_int_229| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_229| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_229| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:22:38,263 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:22:38,417 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:38,419 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:38,420 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:38,421 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:38,423 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:38,424 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:38,425 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:38,426 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:38,428 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:38,428 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-18 14:22:38,436 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:22:38,473 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-18 14:22:38,473 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-18 14:22:40,481 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:22:40,481 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_230|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_230| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_230| ULTIMATE.start_main_p4) 1)) (= 0 .cse0) (= |#memory_int| (store |v_#memory_int_230| ULTIMATE.start_main_p1 (+ .cse0 1))) (= (select |v_#memory_int_230| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_230| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:22:40,481 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:22:40,569 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:40,570 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:40,571 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:40,573 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:40,574 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:40,575 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:40,576 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:40,578 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:40,578 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:22:40,579 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:22:40,580 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 72 [2019-01-18 14:22:40,588 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:22:40,644 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-18 14:22:40,644 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:30 [2019-01-18 14:22:40,656 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:22:40,656 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_231|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_231| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_231| ULTIMATE.start_main_p4) 1) 0) (= |#memory_int| (store |v_#memory_int_231| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= (select |v_#memory_int_231| ULTIMATE.start_main_p1) 1) (= (select |v_#memory_int_231| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:22:40,656 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:22:40,751 INFO L273 TraceCheckUtils]: 0: Hoare triple {20850#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {20859#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:22:40,752 INFO L273 TraceCheckUtils]: 1: Hoare triple {20859#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {20863#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:22:40,754 INFO L273 TraceCheckUtils]: 2: Hoare triple {20863#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {20867#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:22:40,755 INFO L273 TraceCheckUtils]: 3: Hoare triple {20867#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {20871#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:22:40,756 INFO L273 TraceCheckUtils]: 4: Hoare triple {20871#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p1] >= 0; {20871#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:22:40,757 INFO L273 TraceCheckUtils]: 5: Hoare triple {20871#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p2] <= 0; {20871#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:22:40,758 INFO L273 TraceCheckUtils]: 6: Hoare triple {20871#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume !(#memory_int[main_p3] >= 0); {20851#false} is VALID [2019-01-18 14:22:40,759 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-18 14:22:40,759 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:22:40,848 INFO L273 TraceCheckUtils]: 6: Hoare triple {20881#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {20851#false} is VALID [2019-01-18 14:22:40,848 INFO L273 TraceCheckUtils]: 5: Hoare triple {20881#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {20881#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:22:40,849 INFO L273 TraceCheckUtils]: 4: Hoare triple {20881#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {20881#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:22:40,850 INFO L273 TraceCheckUtils]: 3: Hoare triple {20891#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {20881#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:22:40,851 INFO L273 TraceCheckUtils]: 2: Hoare triple {20895#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {20891#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:22:40,854 INFO L273 TraceCheckUtils]: 1: Hoare triple {20899#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {20895#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:22:40,856 INFO L273 TraceCheckUtils]: 0: Hoare triple {20850#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {20899#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:22:40,856 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-18 14:22:40,874 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:22:40,874 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-18 14:22:40,874 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:22:40,875 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-18 14:22:40,875 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:22:40,875 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-18 14:22:40,897 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:22:40,897 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-18 14:22:40,897 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-18 14:22:40,897 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=66, Invalid=116, Unknown=0, NotChecked=0, Total=182 [2019-01-18 14:22:40,898 INFO L87 Difference]: Start difference. First operand 333 states and 1604 transitions. Second operand 10 states. [2019-01-18 14:22:50,625 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:22:50,626 INFO L93 Difference]: Finished difference Result 348 states and 1634 transitions. [2019-01-18 14:22:50,626 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-18 14:22:50,626 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-18 14:22:50,626 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:22:50,626 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:22:50,626 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 40 transitions. [2019-01-18 14:22:50,626 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:22:50,627 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 40 transitions. [2019-01-18 14:22:50,627 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 40 transitions. [2019-01-18 14:22:50,692 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 40 edges. 40 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:22:50,701 INFO L225 Difference]: With dead ends: 348 [2019-01-18 14:22:50,701 INFO L226 Difference]: Without dead ends: 343 [2019-01-18 14:22:50,702 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 21 GetRequests, 4 SyntacticMatches, 2 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 63 ImplicationChecksByTransitivity, 1.4s TimeCoverageRelationStatistics Valid=99, Invalid=173, Unknown=0, NotChecked=0, Total=272 [2019-01-18 14:22:50,702 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 343 states. [2019-01-18 14:23:00,297 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 343 to 334. [2019-01-18 14:23:00,297 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:23:00,297 INFO L82 GeneralOperation]: Start isEquivalent. First operand 343 states. Second operand 334 states. [2019-01-18 14:23:00,297 INFO L74 IsIncluded]: Start isIncluded. First operand 343 states. Second operand 334 states. [2019-01-18 14:23:00,298 INFO L87 Difference]: Start difference. First operand 343 states. Second operand 334 states. [2019-01-18 14:23:00,323 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:23:00,323 INFO L93 Difference]: Finished difference Result 343 states and 1623 transitions. [2019-01-18 14:23:00,323 INFO L276 IsEmpty]: Start isEmpty. Operand 343 states and 1623 transitions. [2019-01-18 14:23:00,324 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:23:00,324 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:23:00,324 INFO L74 IsIncluded]: Start isIncluded. First operand 334 states. Second operand 343 states. [2019-01-18 14:23:00,324 INFO L87 Difference]: Start difference. First operand 334 states. Second operand 343 states. [2019-01-18 14:23:00,333 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:23:00,333 INFO L93 Difference]: Finished difference Result 343 states and 1623 transitions. [2019-01-18 14:23:00,333 INFO L276 IsEmpty]: Start isEmpty. Operand 343 states and 1623 transitions. [2019-01-18 14:23:00,334 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:23:00,334 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:23:00,334 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:23:00,334 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:23:00,334 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 334 states. [2019-01-18 14:23:00,342 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 334 states to 334 states and 1603 transitions. [2019-01-18 14:23:00,342 INFO L78 Accepts]: Start accepts. Automaton has 334 states and 1603 transitions. Word has length 7 [2019-01-18 14:23:00,342 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:23:00,342 INFO L480 AbstractCegarLoop]: Abstraction has 334 states and 1603 transitions. [2019-01-18 14:23:00,342 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-18 14:23:00,342 INFO L276 IsEmpty]: Start isEmpty. Operand 334 states and 1603 transitions. [2019-01-18 14:23:00,343 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-18 14:23:00,343 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:23:00,343 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-18 14:23:00,343 INFO L423 AbstractCegarLoop]: === Iteration 43 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:23:00,344 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:23:00,344 INFO L82 PathProgramCache]: Analyzing trace with hash -2088122094, now seen corresponding path program 1 times [2019-01-18 14:23:00,344 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:23:00,345 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:23:00,345 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:23:00,345 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:23:00,345 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:23:00,348 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:23:00,823 INFO L273 TraceCheckUtils]: 0: Hoare triple {22917#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {22919#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:23:00,824 INFO L273 TraceCheckUtils]: 1: Hoare triple {22919#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {22920#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:23:00,825 INFO L273 TraceCheckUtils]: 2: Hoare triple {22920#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {22920#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:23:00,826 INFO L273 TraceCheckUtils]: 3: Hoare triple {22920#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {22921#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-18 14:23:00,827 INFO L273 TraceCheckUtils]: 4: Hoare triple {22921#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {22922#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-18 14:23:00,828 INFO L273 TraceCheckUtils]: 5: Hoare triple {22922#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {22923#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:23:00,828 INFO L273 TraceCheckUtils]: 6: Hoare triple {22923#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {22918#false} is VALID [2019-01-18 14:23:00,829 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 9 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-18 14:23:00,829 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:23:00,829 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:23:00,829 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-18 14:23:00,830 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [16], [20], [21] [2019-01-18 14:23:00,831 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:23:00,831 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:23:00,838 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:23:00,838 INFO L272 AbstractInterpreter]: Visited 7 different actions 7 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 3. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 4 fixpoints after 4 different actions. Largest state had 0 variables. [2019-01-18 14:23:00,839 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:23:00,839 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:23:00,839 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:23:00,839 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 41 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 41 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-18 14:23:00,849 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:23:00,849 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:23:00,853 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:23:00,857 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:23:00,858 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:23:00,891 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:23:00,900 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:00,901 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:23:00,915 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:00,917 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:00,917 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:23:00,937 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:00,938 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:00,940 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:00,940 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:23:00,948 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:23:00,982 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:23:00,993 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:23:01,004 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:23:01,020 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:23:01,020 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-18 14:23:01,025 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:23:01,025 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_235|]. (and (= (store (store (store (store |v_#memory_int_235| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:23:01,026 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:23:01,093 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:01,095 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:01,096 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:01,097 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:01,098 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:01,099 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:01,100 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:01,101 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-18 14:23:01,108 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:23:01,140 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-18 14:23:01,140 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-18 14:23:03,174 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:23:03,174 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_236|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_236| ULTIMATE.start_main_p4))) (and (= .cse0 0) (= (store |v_#memory_int_236| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_236| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_236| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_236| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:23:03,174 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:23:03,248 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:03,249 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:03,250 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:03,252 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:03,253 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:03,254 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:03,255 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:03,257 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:03,258 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:03,259 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-18 14:23:03,269 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:23:03,322 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-18 14:23:03,322 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-18 14:23:04,249 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:23:04,249 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_237|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_237| ULTIMATE.start_main_p1))) (and (= 0 (+ (select |v_#memory_int_237| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_237| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 0 .cse0) (= 0 (select |v_#memory_int_237| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_237| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:23:04,250 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:23:04,330 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:04,332 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:04,333 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:04,334 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:04,335 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:04,336 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:04,337 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:04,338 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:04,339 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:04,341 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:04,341 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:23:04,342 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-18 14:23:04,348 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:23:04,391 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-18 14:23:04,391 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-18 14:23:06,410 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:23:06,410 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_238|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_238| ULTIMATE.start_main_p3))) (and (= 0 .cse0) (= 0 (select |v_#memory_int_238| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |v_#memory_int_238| ULTIMATE.start_main_p1)) (= (store |v_#memory_int_238| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 (+ (select |v_#memory_int_238| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:23:06,410 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:23:06,497 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:06,499 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:06,500 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:06,501 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:06,503 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:06,504 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:06,505 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:06,507 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:06,507 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:23:06,508 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:06,509 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 72 [2019-01-18 14:23:06,517 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:23:06,557 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-18 14:23:06,558 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:30 [2019-01-18 14:23:06,570 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:23:06,570 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_239|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_239| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_239| ULTIMATE.start_main_p3) 1) (= 0 (+ (select |v_#memory_int_239| ULTIMATE.start_main_p4) 1)) (= 1 (select |v_#memory_int_239| ULTIMATE.start_main_p1)) (= .cse0 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= |#memory_int| (store |v_#memory_int_239| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))))) [2019-01-18 14:23:06,571 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:23:06,639 INFO L273 TraceCheckUtils]: 0: Hoare triple {22917#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {22927#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:23:06,641 INFO L273 TraceCheckUtils]: 1: Hoare triple {22927#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {22931#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:23:06,643 INFO L273 TraceCheckUtils]: 2: Hoare triple {22931#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {22935#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:23:06,645 INFO L273 TraceCheckUtils]: 3: Hoare triple {22935#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {22939#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-18 14:23:06,648 INFO L273 TraceCheckUtils]: 4: Hoare triple {22939#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {22943#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-18 14:23:06,649 INFO L273 TraceCheckUtils]: 5: Hoare triple {22943#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume #memory_int[main_p1] >= 0; {22943#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-18 14:23:06,650 INFO L273 TraceCheckUtils]: 6: Hoare triple {22943#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume !(#memory_int[main_p2] <= 0); {22918#false} is VALID [2019-01-18 14:23:06,651 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:23:06,651 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:23:06,762 INFO L273 TraceCheckUtils]: 6: Hoare triple {22923#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {22918#false} is VALID [2019-01-18 14:23:06,763 INFO L273 TraceCheckUtils]: 5: Hoare triple {22923#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {22923#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:23:06,764 INFO L273 TraceCheckUtils]: 4: Hoare triple {22956#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {22923#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:23:06,765 INFO L273 TraceCheckUtils]: 3: Hoare triple {22960#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {22956#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} is VALID [2019-01-18 14:23:06,766 INFO L273 TraceCheckUtils]: 2: Hoare triple {22964#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {22960#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-01-18 14:23:06,769 INFO L273 TraceCheckUtils]: 1: Hoare triple {22968#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {22964#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-01-18 14:23:06,771 INFO L273 TraceCheckUtils]: 0: Hoare triple {22917#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {22968#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-01-18 14:23:06,771 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 3 proven. 7 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:23:06,791 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:23:06,791 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 14 [2019-01-18 14:23:06,791 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:23:06,792 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 7 [2019-01-18 14:23:06,792 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:23:06,792 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-18 14:23:06,816 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:23:06,816 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-18 14:23:06,816 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-18 14:23:06,816 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=91, Invalid=149, Unknown=0, NotChecked=0, Total=240 [2019-01-18 14:23:06,817 INFO L87 Difference]: Start difference. First operand 334 states and 1603 transitions. Second operand 12 states. [2019-01-18 14:23:19,442 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:23:19,442 INFO L93 Difference]: Finished difference Result 457 states and 2102 transitions. [2019-01-18 14:23:19,443 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-01-18 14:23:19,443 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 7 [2019-01-18 14:23:19,443 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:23:19,443 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-18 14:23:19,443 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 62 transitions. [2019-01-18 14:23:19,443 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-18 14:23:19,444 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 62 transitions. [2019-01-18 14:23:19,444 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 62 transitions. [2019-01-18 14:23:19,538 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 62 edges. 62 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:23:19,552 INFO L225 Difference]: With dead ends: 457 [2019-01-18 14:23:19,552 INFO L226 Difference]: Without dead ends: 456 [2019-01-18 14:23:19,552 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 22 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 18 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 82 ImplicationChecksByTransitivity, 0.8s TimeCoverageRelationStatistics Valid=136, Invalid=244, Unknown=0, NotChecked=0, Total=380 [2019-01-18 14:23:19,553 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 456 states. [2019-01-18 14:23:28,392 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 456 to 329. [2019-01-18 14:23:28,393 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:23:28,393 INFO L82 GeneralOperation]: Start isEquivalent. First operand 456 states. Second operand 329 states. [2019-01-18 14:23:28,393 INFO L74 IsIncluded]: Start isIncluded. First operand 456 states. Second operand 329 states. [2019-01-18 14:23:28,393 INFO L87 Difference]: Start difference. First operand 456 states. Second operand 329 states. [2019-01-18 14:23:28,409 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:23:28,409 INFO L93 Difference]: Finished difference Result 456 states and 2098 transitions. [2019-01-18 14:23:28,409 INFO L276 IsEmpty]: Start isEmpty. Operand 456 states and 2098 transitions. [2019-01-18 14:23:28,410 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:23:28,410 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:23:28,410 INFO L74 IsIncluded]: Start isIncluded. First operand 329 states. Second operand 456 states. [2019-01-18 14:23:28,411 INFO L87 Difference]: Start difference. First operand 329 states. Second operand 456 states. [2019-01-18 14:23:28,430 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:23:28,430 INFO L93 Difference]: Finished difference Result 456 states and 2098 transitions. [2019-01-18 14:23:28,431 INFO L276 IsEmpty]: Start isEmpty. Operand 456 states and 2098 transitions. [2019-01-18 14:23:28,432 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:23:28,432 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:23:28,432 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:23:28,432 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:23:28,432 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 329 states. [2019-01-18 14:23:28,444 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 329 states to 329 states and 1582 transitions. [2019-01-18 14:23:28,444 INFO L78 Accepts]: Start accepts. Automaton has 329 states and 1582 transitions. Word has length 7 [2019-01-18 14:23:28,444 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:23:28,444 INFO L480 AbstractCegarLoop]: Abstraction has 329 states and 1582 transitions. [2019-01-18 14:23:28,445 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-18 14:23:28,445 INFO L276 IsEmpty]: Start isEmpty. Operand 329 states and 1582 transitions. [2019-01-18 14:23:28,445 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-18 14:23:28,445 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:23:28,445 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-18 14:23:28,446 INFO L423 AbstractCegarLoop]: === Iteration 44 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:23:28,446 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:23:28,446 INFO L82 PathProgramCache]: Analyzing trace with hash -2084662494, now seen corresponding path program 2 times [2019-01-18 14:23:28,446 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:23:28,447 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:23:28,447 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:23:28,447 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:23:28,447 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:23:28,450 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:23:28,750 INFO L273 TraceCheckUtils]: 0: Hoare triple {25401#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {25403#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:23:28,752 INFO L273 TraceCheckUtils]: 1: Hoare triple {25403#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {25404#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-18 14:23:28,753 INFO L273 TraceCheckUtils]: 2: Hoare triple {25404#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {25405#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-18 14:23:28,754 INFO L273 TraceCheckUtils]: 3: Hoare triple {25405#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {25405#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-18 14:23:28,755 INFO L273 TraceCheckUtils]: 4: Hoare triple {25405#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {25406#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-18 14:23:28,755 INFO L273 TraceCheckUtils]: 5: Hoare triple {25406#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume #memory_int[main_p1] >= 0; {25406#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-18 14:23:28,756 INFO L273 TraceCheckUtils]: 6: Hoare triple {25406#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume !(#memory_int[main_p2] <= 0); {25402#false} is VALID [2019-01-18 14:23:28,756 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 9 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-18 14:23:28,757 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:23:28,757 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:23:28,757 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-18 14:23:28,757 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-18 14:23:28,757 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:23:28,757 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 42 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 42 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-18 14:23:28,768 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-18 14:23:28,768 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-18 14:23:28,777 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-18 14:23:28,777 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-18 14:23:28,780 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:23:28,781 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:23:28,809 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:23:28,819 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:28,820 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:23:28,840 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:28,841 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:28,842 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:23:28,861 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:28,863 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:28,864 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:28,865 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:23:28,872 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:23:28,894 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:23:28,905 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:23:28,915 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:23:28,931 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:23:28,931 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-18 14:23:28,936 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:23:28,936 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_244|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_244| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:23:28,937 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:23:29,008 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:29,008 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:29,009 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:29,010 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:29,011 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:29,012 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:29,013 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:29,014 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-18 14:23:29,022 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:23:29,051 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-18 14:23:29,052 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-18 14:23:30,399 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:23:30,399 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_245|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_245| ULTIMATE.start_main_p4))) (and (= 0 .cse0) (= (store |v_#memory_int_245| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_245| ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_245| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_245| ULTIMATE.start_main_p3) 0))) [2019-01-18 14:23:30,399 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:23:30,474 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:30,476 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:30,477 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:30,478 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:30,479 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:30,481 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:30,482 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:30,482 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:23:30,483 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-18 14:23:30,490 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:23:30,524 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-18 14:23:30,525 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:42, output treesize:30 [2019-01-18 14:23:30,538 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:23:30,538 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_246|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_246| ULTIMATE.start_main_p2))) (and (= 0 (+ (select |v_#memory_int_246| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_246| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= 0 .cse0) (= (select |v_#memory_int_246| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_246| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:23:30,539 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:23:30,611 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:30,613 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:30,614 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:30,615 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:30,616 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:30,618 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:30,619 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:30,620 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:30,621 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:30,622 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 61 [2019-01-18 14:23:30,629 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:23:30,663 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-18 14:23:30,663 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:44, output treesize:34 [2019-01-18 14:23:32,673 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:23:32,674 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_247|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_247| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_247| ULTIMATE.start_main_p2) 1)) (= .cse0 0) (= (+ (select |v_#memory_int_247| ULTIMATE.start_main_p4) 1) 0) (= (store |v_#memory_int_247| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_247| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:23:32,674 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-18 14:23:32,753 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:32,754 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:32,755 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:32,756 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:32,758 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:32,759 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:32,760 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:32,761 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:32,762 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:32,763 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:32,764 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:23:32,764 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 75 [2019-01-18 14:23:32,772 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:23:32,830 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-18 14:23:32,830 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-01-18 14:23:32,846 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:23:32,846 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_248|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_248| ULTIMATE.start_main_p3))) (and (= (+ (select |v_#memory_int_248| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (store |v_#memory_int_248| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= (+ (select |v_#memory_int_248| ULTIMATE.start_main_p2) 1) 0) (= 1 (select |v_#memory_int_248| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:23:32,846 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-18 14:23:32,965 INFO L273 TraceCheckUtils]: 0: Hoare triple {25401#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {25410#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:23:32,966 INFO L273 TraceCheckUtils]: 1: Hoare triple {25410#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {25414#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:23:32,971 INFO L273 TraceCheckUtils]: 2: Hoare triple {25414#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {25418#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:23:32,973 INFO L273 TraceCheckUtils]: 3: Hoare triple {25418#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {25422#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-18 14:23:32,974 INFO L273 TraceCheckUtils]: 4: Hoare triple {25422#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {25426#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-18 14:23:32,975 INFO L273 TraceCheckUtils]: 5: Hoare triple {25426#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume #memory_int[main_p1] >= 0; {25426#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-18 14:23:32,976 INFO L273 TraceCheckUtils]: 6: Hoare triple {25426#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume !(#memory_int[main_p2] <= 0); {25402#false} is VALID [2019-01-18 14:23:32,977 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:23:32,977 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:23:33,207 INFO L273 TraceCheckUtils]: 6: Hoare triple {25433#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {25402#false} is VALID [2019-01-18 14:23:33,208 INFO L273 TraceCheckUtils]: 5: Hoare triple {25433#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {25433#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:23:33,209 INFO L273 TraceCheckUtils]: 4: Hoare triple {25440#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {25433#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:23:33,210 INFO L273 TraceCheckUtils]: 3: Hoare triple {25444#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {25440#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:23:33,212 INFO L273 TraceCheckUtils]: 2: Hoare triple {25448#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {25444#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:23:33,214 INFO L273 TraceCheckUtils]: 1: Hoare triple {25452#(<= (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {25448#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:23:33,216 INFO L273 TraceCheckUtils]: 0: Hoare triple {25401#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {25452#(<= (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:23:33,217 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 5 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:23:33,237 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:23:33,237 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 5, 5] total 14 [2019-01-18 14:23:33,237 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:23:33,237 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 7 [2019-01-18 14:23:33,238 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:23:33,238 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states. [2019-01-18 14:23:33,261 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:23:33,261 INFO L459 AbstractCegarLoop]: Interpolant automaton has 11 states [2019-01-18 14:23:33,261 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2019-01-18 14:23:33,261 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=89, Invalid=151, Unknown=0, NotChecked=0, Total=240 [2019-01-18 14:23:33,262 INFO L87 Difference]: Start difference. First operand 329 states and 1582 transitions. Second operand 11 states. [2019-01-18 14:23:43,692 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:23:43,692 INFO L93 Difference]: Finished difference Result 346 states and 1608 transitions. [2019-01-18 14:23:43,692 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-18 14:23:43,692 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 7 [2019-01-18 14:23:43,692 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:23:43,693 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2019-01-18 14:23:43,693 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 47 transitions. [2019-01-18 14:23:43,693 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2019-01-18 14:23:43,693 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 47 transitions. [2019-01-18 14:23:43,693 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 47 transitions. [2019-01-18 14:23:43,781 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 47 edges. 47 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:23:43,790 INFO L225 Difference]: With dead ends: 346 [2019-01-18 14:23:43,791 INFO L226 Difference]: Without dead ends: 345 [2019-01-18 14:23:43,791 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 21 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 90 ImplicationChecksByTransitivity, 0.8s TimeCoverageRelationStatistics Valid=119, Invalid=223, Unknown=0, NotChecked=0, Total=342 [2019-01-18 14:23:43,791 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 345 states. [2019-01-18 14:23:49,851 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 345 to 213. [2019-01-18 14:23:49,851 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:23:49,851 INFO L82 GeneralOperation]: Start isEquivalent. First operand 345 states. Second operand 213 states. [2019-01-18 14:23:49,851 INFO L74 IsIncluded]: Start isIncluded. First operand 345 states. Second operand 213 states. [2019-01-18 14:23:49,851 INFO L87 Difference]: Start difference. First operand 345 states. Second operand 213 states. [2019-01-18 14:23:49,862 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:23:49,862 INFO L93 Difference]: Finished difference Result 345 states and 1604 transitions. [2019-01-18 14:23:49,862 INFO L276 IsEmpty]: Start isEmpty. Operand 345 states and 1604 transitions. [2019-01-18 14:23:49,863 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:23:49,863 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:23:49,863 INFO L74 IsIncluded]: Start isIncluded. First operand 213 states. Second operand 345 states. [2019-01-18 14:23:49,863 INFO L87 Difference]: Start difference. First operand 213 states. Second operand 345 states. [2019-01-18 14:23:49,872 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:23:49,872 INFO L93 Difference]: Finished difference Result 345 states and 1604 transitions. [2019-01-18 14:23:49,872 INFO L276 IsEmpty]: Start isEmpty. Operand 345 states and 1604 transitions. [2019-01-18 14:23:49,872 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:23:49,872 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:23:49,873 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:23:49,873 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:23:49,873 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 213 states. [2019-01-18 14:23:49,877 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 213 states to 213 states and 1003 transitions. [2019-01-18 14:23:49,877 INFO L78 Accepts]: Start accepts. Automaton has 213 states and 1003 transitions. Word has length 7 [2019-01-18 14:23:49,877 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:23:49,877 INFO L480 AbstractCegarLoop]: Abstraction has 213 states and 1003 transitions. [2019-01-18 14:23:49,877 INFO L481 AbstractCegarLoop]: Interpolant automaton has 11 states. [2019-01-18 14:23:49,877 INFO L276 IsEmpty]: Start isEmpty. Operand 213 states and 1003 transitions. [2019-01-18 14:23:49,878 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-18 14:23:49,878 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:23:49,878 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-18 14:23:49,878 INFO L423 AbstractCegarLoop]: === Iteration 45 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:23:49,878 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:23:49,878 INFO L82 PathProgramCache]: Analyzing trace with hash -2084418336, now seen corresponding path program 1 times [2019-01-18 14:23:49,878 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:23:49,879 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:23:49,879 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-18 14:23:49,879 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:23:49,879 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:23:49,883 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:23:50,089 INFO L273 TraceCheckUtils]: 0: Hoare triple {27229#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {27231#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:23:50,090 INFO L273 TraceCheckUtils]: 1: Hoare triple {27231#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {27232#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:23:50,091 INFO L273 TraceCheckUtils]: 2: Hoare triple {27232#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {27232#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:23:50,092 INFO L273 TraceCheckUtils]: 3: Hoare triple {27232#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {27233#(and (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:23:50,092 INFO L273 TraceCheckUtils]: 4: Hoare triple {27233#(and (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)))} assume #memory_int[main_p1] >= 0; {27233#(and (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:23:50,093 INFO L273 TraceCheckUtils]: 5: Hoare triple {27233#(and (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)))} assume #memory_int[main_p2] <= 0; {27234#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:23:50,093 INFO L273 TraceCheckUtils]: 6: Hoare triple {27234#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {27230#false} is VALID [2019-01-18 14:23:50,094 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-18 14:23:50,094 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:23:50,094 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:23:50,095 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-18 14:23:50,095 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [16], [20], [22], [23] [2019-01-18 14:23:50,096 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:23:50,096 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:23:50,107 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:23:50,108 INFO L272 AbstractInterpreter]: Visited 7 different actions 7 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 3. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-18 14:23:50,108 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:23:50,108 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:23:50,108 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:23:50,108 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 43 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 43 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-18 14:23:50,118 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:23:50,118 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:23:50,123 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:23:50,125 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:23:50,126 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:23:50,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 15 treesize of output 18 [2019-01-18 14:23:50,162 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-18 14:23:50,178 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:50,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, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-01-18 14:23:50,196 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:50,197 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:50,198 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-01-18 14:23:50,205 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:23:50,219 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:23:50,230 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:23:50,240 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:23:50,254 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-18 14:23:50,255 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:22, output treesize:27 [2019-01-18 14:23:50,261 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:23:50,261 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_253|, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_253| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:23:50,261 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:23:50,334 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:50,335 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:50,336 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:50,337 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:50,338 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-18 14:23:50,343 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:23:50,363 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-18 14:23:50,363 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-18 14:23:52,378 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:23:52,378 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_254|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_254| ULTIMATE.start_main_p4))) (and (= (select |v_#memory_int_254| ULTIMATE.start_main_p3) 0) (= (store |v_#memory_int_254| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_254| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:23:52,378 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:23:52,439 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:52,440 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:52,441 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:52,442 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:52,443 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:23:52,443 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 41 [2019-01-18 14:23:52,449 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:23:52,471 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-18 14:23:52,471 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:34, output treesize:22 [2019-01-18 14:23:53,810 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:23:53,810 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_255|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_255| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (store |v_#memory_int_255| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_255| ULTIMATE.start_main_p3)) (= (+ (select |v_#memory_int_255| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:23:53,810 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:23:53,868 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:53,869 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:53,871 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:53,872 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:53,873 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:53,874 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:23:53,875 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 30 treesize of output 44 [2019-01-18 14:23:53,880 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:23:53,903 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-18 14:23:53,903 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:36, output treesize:26 [2019-01-18 14:23:53,910 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:23:53,910 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_256|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_256| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_256| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= |#memory_int| (store |v_#memory_int_256| ULTIMATE.start_main_p3 (+ .cse0 1))) (= 0 (+ (select |v_#memory_int_256| ULTIMATE.start_main_p4) 1)) (= .cse0 0))) [2019-01-18 14:23:53,910 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:23:54,004 INFO L273 TraceCheckUtils]: 0: Hoare triple {27229#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {27238#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:23:54,005 INFO L273 TraceCheckUtils]: 1: Hoare triple {27238#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {27242#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:23:54,007 INFO L273 TraceCheckUtils]: 2: Hoare triple {27242#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {27246#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:23:54,009 INFO L273 TraceCheckUtils]: 3: Hoare triple {27246#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {27250#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-18 14:23:54,010 INFO L273 TraceCheckUtils]: 4: Hoare triple {27250#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p1] >= 0; {27250#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-18 14:23:54,027 INFO L273 TraceCheckUtils]: 5: Hoare triple {27250#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p2] <= 0; {27250#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-18 14:23:54,032 INFO L273 TraceCheckUtils]: 6: Hoare triple {27250#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p3] >= 0); {27230#false} is VALID [2019-01-18 14:23:54,032 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-18 14:23:54,032 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:23:54,170 INFO L273 TraceCheckUtils]: 6: Hoare triple {27234#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {27230#false} is VALID [2019-01-18 14:23:54,170 INFO L273 TraceCheckUtils]: 5: Hoare triple {27234#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {27234#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:23:54,171 INFO L273 TraceCheckUtils]: 4: Hoare triple {27234#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {27234#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:23:54,172 INFO L273 TraceCheckUtils]: 3: Hoare triple {27269#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {27234#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:23:54,173 INFO L273 TraceCheckUtils]: 2: Hoare triple {27273#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {27269#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1))} is VALID [2019-01-18 14:23:54,174 INFO L273 TraceCheckUtils]: 1: Hoare triple {27277#(<= 0 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {27273#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1))} is VALID [2019-01-18 14:23:54,176 INFO L273 TraceCheckUtils]: 0: Hoare triple {27229#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {27277#(<= 0 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1))} is VALID [2019-01-18 14:23:54,177 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-18 14:23:54,197 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:23:54,197 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-18 14:23:54,197 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:23:54,197 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-18 14:23:54,198 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:23:54,198 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-18 14:23:54,217 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:23:54,218 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-18 14:23:54,218 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-18 14:23:54,218 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=63, Invalid=93, Unknown=0, NotChecked=0, Total=156 [2019-01-18 14:23:54,218 INFO L87 Difference]: Start difference. First operand 213 states and 1003 transitions. Second operand 10 states. [2019-01-18 14:24:02,840 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:24:02,840 INFO L93 Difference]: Finished difference Result 280 states and 1278 transitions. [2019-01-18 14:24:02,840 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-18 14:24:02,840 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-18 14:24:02,840 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:24:02,840 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:24:02,841 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 45 transitions. [2019-01-18 14:24:02,841 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:24:02,841 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 45 transitions. [2019-01-18 14:24:02,841 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 45 transitions. [2019-01-18 14:24:02,902 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:24:02,909 INFO L225 Difference]: With dead ends: 280 [2019-01-18 14:24:02,909 INFO L226 Difference]: Without dead ends: 277 [2019-01-18 14:24:02,909 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 20 GetRequests, 5 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 51 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=91, Invalid=149, Unknown=0, NotChecked=0, Total=240 [2019-01-18 14:24:02,910 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 277 states. [2019-01-18 14:24:10,513 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 277 to 242. [2019-01-18 14:24:10,513 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:24:10,513 INFO L82 GeneralOperation]: Start isEquivalent. First operand 277 states. Second operand 242 states. [2019-01-18 14:24:10,514 INFO L74 IsIncluded]: Start isIncluded. First operand 277 states. Second operand 242 states. [2019-01-18 14:24:10,514 INFO L87 Difference]: Start difference. First operand 277 states. Second operand 242 states. [2019-01-18 14:24:10,521 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:24:10,521 INFO L93 Difference]: Finished difference Result 277 states and 1273 transitions. [2019-01-18 14:24:10,521 INFO L276 IsEmpty]: Start isEmpty. Operand 277 states and 1273 transitions. [2019-01-18 14:24:10,522 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:24:10,522 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:24:10,522 INFO L74 IsIncluded]: Start isIncluded. First operand 242 states. Second operand 277 states. [2019-01-18 14:24:10,522 INFO L87 Difference]: Start difference. First operand 242 states. Second operand 277 states. [2019-01-18 14:24:10,528 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:24:10,529 INFO L93 Difference]: Finished difference Result 277 states and 1273 transitions. [2019-01-18 14:24:10,529 INFO L276 IsEmpty]: Start isEmpty. Operand 277 states and 1273 transitions. [2019-01-18 14:24:10,529 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:24:10,529 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:24:10,529 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:24:10,529 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:24:10,529 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 242 states. [2019-01-18 14:24:10,534 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 242 states to 242 states and 1141 transitions. [2019-01-18 14:24:10,535 INFO L78 Accepts]: Start accepts. Automaton has 242 states and 1141 transitions. Word has length 7 [2019-01-18 14:24:10,535 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:24:10,535 INFO L480 AbstractCegarLoop]: Abstraction has 242 states and 1141 transitions. [2019-01-18 14:24:10,535 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-18 14:24:10,535 INFO L276 IsEmpty]: Start isEmpty. Operand 242 states and 1141 transitions. [2019-01-18 14:24:10,535 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-18 14:24:10,535 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:24:10,535 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-18 14:24:10,536 INFO L423 AbstractCegarLoop]: === Iteration 46 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:24:10,536 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:24:10,536 INFO L82 PathProgramCache]: Analyzing trace with hash -2080543520, now seen corresponding path program 1 times [2019-01-18 14:24:10,536 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:24:10,537 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:24:10,537 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:24:10,537 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:24:10,537 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:24:10,539 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:24:10,679 INFO L273 TraceCheckUtils]: 0: Hoare triple {28849#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {28851#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:24:10,680 INFO L273 TraceCheckUtils]: 1: Hoare triple {28851#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {28852#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-18 14:24:10,681 INFO L273 TraceCheckUtils]: 2: Hoare triple {28852#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {28853#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:24:10,682 INFO L273 TraceCheckUtils]: 3: Hoare triple {28853#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p1] >= 0; {28853#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:24:10,682 INFO L273 TraceCheckUtils]: 4: Hoare triple {28853#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p2] <= 0; {28853#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:24:10,682 INFO L273 TraceCheckUtils]: 5: Hoare triple {28853#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p3] >= 0; {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:24:10,683 INFO L273 TraceCheckUtils]: 6: Hoare triple {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {28850#false} is VALID [2019-01-18 14:24:10,683 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-18 14:24:10,683 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:24:10,683 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:24:10,683 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-18 14:24:10,684 INFO L207 CegarAbsIntRunner]: [0], [14], [16], [20], [22], [24], [25] [2019-01-18 14:24:10,685 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:24:10,685 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:24:10,699 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:24:10,699 INFO L272 AbstractInterpreter]: Visited 7 different actions 7 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 3. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:24:10,699 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:24:10,699 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:24:10,699 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:24:10,699 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 44 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 44 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-18 14:24:10,707 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:24:10,707 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:24:10,712 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:24:10,715 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:24:10,715 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:24:10,732 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:24:10,747 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-18 14:24:10,760 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-01-18 14:24:10,783 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:10,784 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 1 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 25 [2019-01-18 14:24:10,791 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:24:10,802 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:24:10,813 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:24:10,823 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:24:10,835 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-18 14:24:10,836 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:19, output treesize:24 [2019-01-18 14:24:10,840 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:24:10,840 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_260|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_260| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0))) [2019-01-18 14:24:10,840 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:24:10,892 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:10,893 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:10,894 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 15 [2019-01-18 14:24:10,898 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:24:10,906 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:24:10,907 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:24, output treesize:14 [2019-01-18 14:24:10,914 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:24:10,915 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_261|]. (let ((.cse0 (select |v_#memory_int_261| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_261| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_261| ULTIMATE.start_main_p3)) (= 0 .cse0))) [2019-01-18 14:24:10,915 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-18 14:24:10,952 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:10,953 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:10,954 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:10,955 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:10,956 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 4 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 29 [2019-01-18 14:24:10,960 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:24:10,972 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-18 14:24:10,972 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:26, output treesize:16 [2019-01-18 14:24:10,990 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:24:10,990 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_262|, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_262| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_262| ULTIMATE.start_main_p3 (+ .cse0 1))) (= 0 (+ (select |v_#memory_int_262| ULTIMATE.start_main_p4) 1)) (= .cse0 0))) [2019-01-18 14:24:10,990 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) [2019-01-18 14:24:11,053 INFO L273 TraceCheckUtils]: 0: Hoare triple {28849#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {28858#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:24:11,055 INFO L273 TraceCheckUtils]: 1: Hoare triple {28858#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {28862#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:24:11,056 INFO L273 TraceCheckUtils]: 2: Hoare triple {28862#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {28866#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))))} is VALID [2019-01-18 14:24:11,057 INFO L273 TraceCheckUtils]: 3: Hoare triple {28866#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))))} assume #memory_int[main_p1] >= 0; {28866#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))))} is VALID [2019-01-18 14:24:11,057 INFO L273 TraceCheckUtils]: 4: Hoare triple {28866#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))))} assume #memory_int[main_p2] <= 0; {28866#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))))} is VALID [2019-01-18 14:24:11,058 INFO L273 TraceCheckUtils]: 5: Hoare triple {28866#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))))} assume #memory_int[main_p3] >= 0; {28866#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))))} is VALID [2019-01-18 14:24:11,059 INFO L273 TraceCheckUtils]: 6: Hoare triple {28866#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))))} assume !(#memory_int[main_p4] <= 0); {28850#false} is VALID [2019-01-18 14:24:11,059 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:24:11,059 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:24:11,119 INFO L273 TraceCheckUtils]: 6: Hoare triple {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {28850#false} is VALID [2019-01-18 14:24:11,121 INFO L273 TraceCheckUtils]: 5: Hoare triple {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:24:11,121 INFO L273 TraceCheckUtils]: 4: Hoare triple {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:24:11,123 INFO L273 TraceCheckUtils]: 3: Hoare triple {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:24:11,123 INFO L273 TraceCheckUtils]: 2: Hoare triple {28891#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:24:11,127 INFO L273 TraceCheckUtils]: 1: Hoare triple {28895#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {28891#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:24:11,128 INFO L273 TraceCheckUtils]: 0: Hoare triple {28849#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {28895#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:24:11,128 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-18 14:24:11,147 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:24:11,148 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 3, 3] total 9 [2019-01-18 14:24:11,148 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:24:11,148 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 7 [2019-01-18 14:24:11,148 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:24:11,148 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states. [2019-01-18 14:24:11,175 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:24:11,175 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2019-01-18 14:24:11,176 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2019-01-18 14:24:11,176 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=46, Invalid=64, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:24:11,176 INFO L87 Difference]: Start difference. First operand 242 states and 1141 transitions. Second operand 9 states. [2019-01-18 14:24:22,923 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:24:22,924 INFO L93 Difference]: Finished difference Result 390 states and 1798 transitions. [2019-01-18 14:24:22,924 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-18 14:24:22,924 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 7 [2019-01-18 14:24:22,924 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:24:22,924 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-01-18 14:24:22,924 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 55 transitions. [2019-01-18 14:24:22,924 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-01-18 14:24:22,925 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 55 transitions. [2019-01-18 14:24:22,925 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 55 transitions. [2019-01-18 14:24:22,998 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 55 edges. 55 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:24:23,008 INFO L225 Difference]: With dead ends: 390 [2019-01-18 14:24:23,009 INFO L226 Difference]: Without dead ends: 377 [2019-01-18 14:24:23,009 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 7 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 26 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=54, Invalid=78, Unknown=0, NotChecked=0, Total=132 [2019-01-18 14:24:23,009 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 377 states. [2019-01-18 14:24:34,400 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 377 to 367. [2019-01-18 14:24:34,400 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:24:34,400 INFO L82 GeneralOperation]: Start isEquivalent. First operand 377 states. Second operand 367 states. [2019-01-18 14:24:34,400 INFO L74 IsIncluded]: Start isIncluded. First operand 377 states. Second operand 367 states. [2019-01-18 14:24:34,401 INFO L87 Difference]: Start difference. First operand 377 states. Second operand 367 states. [2019-01-18 14:24:34,412 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:24:34,412 INFO L93 Difference]: Finished difference Result 377 states and 1660 transitions. [2019-01-18 14:24:34,412 INFO L276 IsEmpty]: Start isEmpty. Operand 377 states and 1660 transitions. [2019-01-18 14:24:34,412 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:24:34,413 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:24:34,413 INFO L74 IsIncluded]: Start isIncluded. First operand 367 states. Second operand 377 states. [2019-01-18 14:24:34,413 INFO L87 Difference]: Start difference. First operand 367 states. Second operand 377 states. [2019-01-18 14:24:34,422 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:24:34,422 INFO L93 Difference]: Finished difference Result 377 states and 1660 transitions. [2019-01-18 14:24:34,422 INFO L276 IsEmpty]: Start isEmpty. Operand 377 states and 1660 transitions. [2019-01-18 14:24:34,423 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:24:34,423 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:24:34,423 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:24:34,423 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:24:34,423 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 367 states. [2019-01-18 14:24:34,432 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 367 states to 367 states and 1654 transitions. [2019-01-18 14:24:34,432 INFO L78 Accepts]: Start accepts. Automaton has 367 states and 1654 transitions. Word has length 7 [2019-01-18 14:24:34,432 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:24:34,432 INFO L480 AbstractCegarLoop]: Abstraction has 367 states and 1654 transitions. [2019-01-18 14:24:34,432 INFO L481 AbstractCegarLoop]: Interpolant automaton has 9 states. [2019-01-18 14:24:34,432 INFO L276 IsEmpty]: Start isEmpty. Operand 367 states and 1654 transitions. [2019-01-18 14:24:34,433 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-18 14:24:34,433 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:24:34,433 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1] [2019-01-18 14:24:34,433 INFO L423 AbstractCegarLoop]: === Iteration 47 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:24:34,433 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:24:34,433 INFO L82 PathProgramCache]: Analyzing trace with hash -2080966800, now seen corresponding path program 4 times [2019-01-18 14:24:34,433 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:24:34,434 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:24:34,434 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:24:34,434 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:24:34,434 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:24:34,437 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:24:34,805 INFO L273 TraceCheckUtils]: 0: Hoare triple {31123#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {31125#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:24:34,806 INFO L273 TraceCheckUtils]: 1: Hoare triple {31125#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {31125#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:24:34,807 INFO L273 TraceCheckUtils]: 2: Hoare triple {31125#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {31126#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)))} is VALID [2019-01-18 14:24:34,808 INFO L273 TraceCheckUtils]: 3: Hoare triple {31126#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {31127#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)))} is VALID [2019-01-18 14:24:34,809 INFO L273 TraceCheckUtils]: 4: Hoare triple {31127#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {31128#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-18 14:24:34,810 INFO L273 TraceCheckUtils]: 5: Hoare triple {31128#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {31129#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:24:34,811 INFO L273 TraceCheckUtils]: 6: Hoare triple {31129#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {31124#false} is VALID [2019-01-18 14:24:34,812 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 0 proven. 14 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-18 14:24:34,812 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:24:34,812 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:24:34,812 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-18 14:24:34,812 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-18 14:24:34,812 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:24:34,813 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 45 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 45 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-18 14:24:34,822 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:24:34,822 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:24:34,827 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:24:34,833 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:24:34,833 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:24:34,855 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:24:34,878 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:34,879 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:24:34,895 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:34,896 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:34,897 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:24:34,916 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:34,918 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:34,919 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:34,920 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:24:34,927 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:24:34,946 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:24:34,958 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:24:34,968 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:24:34,985 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:24:34,985 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-18 14:24:34,991 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:24:34,991 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_265|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_265| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:24:34,991 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:24:35,068 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:35,069 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:35,070 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:35,071 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:35,072 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:35,074 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:35,075 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:35,076 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-18 14:24:35,082 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:24:35,113 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:24:35,113 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:40, output treesize:30 [2019-01-18 14:24:35,133 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:24:35,133 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_266|]. (let ((.cse0 (select |v_#memory_int_266| ULTIMATE.start_main_p4))) (and (= 0 (select |v_#memory_int_266| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_266| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= 0 .cse0) (= 0 (select |v_#memory_int_266| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_266| ULTIMATE.start_main_p3) 0))) [2019-01-18 14:24:35,133 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:24:35,210 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:35,211 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:35,212 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:35,214 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:35,215 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:35,216 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:35,218 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:35,219 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:35,220 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:35,221 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-18 14:24:35,228 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:24:35,264 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-18 14:24:35,264 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:42, output treesize:32 [2019-01-18 14:24:37,275 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:24:37,275 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_267|, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_267| ULTIMATE.start_main_p3))) (and (= 0 (+ (select |v_#memory_int_267| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_267| ULTIMATE.start_main_p1) 0) (= |#memory_int| (store |v_#memory_int_267| ULTIMATE.start_main_p3 (+ .cse0 1))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (select |v_#memory_int_267| ULTIMATE.start_main_p2)))) [2019-01-18 14:24:37,275 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:24:37,357 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,358 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,359 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,360 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,362 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,363 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,364 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,365 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,366 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,367 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,368 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,369 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:24:37,369 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 73 [2019-01-18 14:24:37,376 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:24:37,415 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-18 14:24:37,416 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:42, output treesize:32 [2019-01-18 14:24:37,429 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:24:37,429 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_268|, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_268| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |v_#memory_int_268| ULTIMATE.start_main_p3)) (= (store |v_#memory_int_268| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (+ (select |v_#memory_int_268| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 .cse0) (= (select |v_#memory_int_268| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:24:37,429 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:24:37,546 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,549 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,550 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,551 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,552 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,553 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,553 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,555 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,556 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,557 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,558 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,559 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,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, 12 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 77 [2019-01-18 14:24:37,567 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:24:37,608 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-18 14:24:37,608 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:30 [2019-01-18 14:24:37,619 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:24:37,619 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_269|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_269| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ .cse0 1)) (= (select |v_#memory_int_269| ULTIMATE.start_main_p3) 1) (= 1 (select |v_#memory_int_269| ULTIMATE.start_main_p1)) (= (select |v_#memory_int_269| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= |#memory_int| (store |v_#memory_int_269| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:24:37,619 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:24:37,694 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,696 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,697 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,698 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,700 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,701 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,702 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,703 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,704 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,705 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,707 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,708 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:37,709 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 12 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 79 [2019-01-18 14:24:37,715 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:24:37,758 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-18 14:24:37,758 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-18 14:24:37,767 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:24:37,767 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_270|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_270| ULTIMATE.start_main_p2))) (and (= (select |v_#memory_int_270| ULTIMATE.start_main_p3) 1) (= |#memory_int| (store |v_#memory_int_270| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |v_#memory_int_270| ULTIMATE.start_main_p1)) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (+ (select |v_#memory_int_270| ULTIMATE.start_main_p4) 2)))) [2019-01-18 14:24:37,767 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) [2019-01-18 14:24:37,806 INFO L273 TraceCheckUtils]: 0: Hoare triple {31123#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {31133#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:24:37,808 INFO L273 TraceCheckUtils]: 1: Hoare triple {31133#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {31137#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:24:37,810 INFO L273 TraceCheckUtils]: 2: Hoare triple {31137#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {31141#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:24:37,811 INFO L273 TraceCheckUtils]: 3: Hoare triple {31141#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {31145#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:24:37,824 INFO L273 TraceCheckUtils]: 4: Hoare triple {31145#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {31149#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:24:37,826 INFO L273 TraceCheckUtils]: 5: Hoare triple {31149#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {31153#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))))} is VALID [2019-01-18 14:24:37,827 INFO L273 TraceCheckUtils]: 6: Hoare triple {31153#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))))} assume !(#memory_int[main_p1] >= 0); {31124#false} is VALID [2019-01-18 14:24:37,828 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 0 proven. 15 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:24:37,828 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:24:38,021 INFO L273 TraceCheckUtils]: 6: Hoare triple {31157#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {31124#false} is VALID [2019-01-18 14:24:38,022 INFO L273 TraceCheckUtils]: 5: Hoare triple {31161#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {31157#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:24:38,024 INFO L273 TraceCheckUtils]: 4: Hoare triple {31165#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {31161#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:24:38,025 INFO L273 TraceCheckUtils]: 3: Hoare triple {31169#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {31165#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:24:38,028 INFO L273 TraceCheckUtils]: 2: Hoare triple {31173#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {31169#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:24:38,031 INFO L273 TraceCheckUtils]: 1: Hoare triple {31177#(<= 0 (select (store (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {31173#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:24:38,033 INFO L273 TraceCheckUtils]: 0: Hoare triple {31123#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {31177#(<= 0 (select (store (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:24:38,034 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 6 proven. 9 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:24:38,052 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:24:38,052 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 6, 6] total 17 [2019-01-18 14:24:38,052 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:24:38,053 INFO L78 Accepts]: Start accepts. Automaton has 13 states. Word has length 7 [2019-01-18 14:24:38,053 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:24:38,053 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 13 states. [2019-01-18 14:24:38,083 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:24:38,083 INFO L459 AbstractCegarLoop]: Interpolant automaton has 13 states [2019-01-18 14:24:38,083 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2019-01-18 14:24:38,083 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=122, Invalid=220, Unknown=0, NotChecked=0, Total=342 [2019-01-18 14:24:38,083 INFO L87 Difference]: Start difference. First operand 367 states and 1654 transitions. Second operand 13 states. [2019-01-18 14:24:51,380 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:24:51,380 INFO L93 Difference]: Finished difference Result 375 states and 1668 transitions. [2019-01-18 14:24:51,380 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-01-18 14:24:51,381 INFO L78 Accepts]: Start accepts. Automaton has 13 states. Word has length 7 [2019-01-18 14:24:51,381 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:24:51,381 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2019-01-18 14:24:51,381 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 46 transitions. [2019-01-18 14:24:51,381 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2019-01-18 14:24:51,381 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 46 transitions. [2019-01-18 14:24:51,381 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 46 transitions. [2019-01-18 14:24:51,470 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-18 14:24:51,480 INFO L225 Difference]: With dead ends: 375 [2019-01-18 14:24:51,480 INFO L226 Difference]: Without dead ends: 374 [2019-01-18 14:24:51,480 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 21 GetRequests, 0 SyntacticMatches, 1 SemanticMatches, 20 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 136 ImplicationChecksByTransitivity, 0.8s TimeCoverageRelationStatistics Valid=157, Invalid=305, Unknown=0, NotChecked=0, Total=462 [2019-01-18 14:24:51,480 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 374 states. [2019-01-18 14:24:59,011 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 374 to 147. [2019-01-18 14:24:59,011 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:24:59,011 INFO L82 GeneralOperation]: Start isEquivalent. First operand 374 states. Second operand 147 states. [2019-01-18 14:24:59,011 INFO L74 IsIncluded]: Start isIncluded. First operand 374 states. Second operand 147 states. [2019-01-18 14:24:59,011 INFO L87 Difference]: Start difference. First operand 374 states. Second operand 147 states. [2019-01-18 14:24:59,021 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:24:59,021 INFO L93 Difference]: Finished difference Result 374 states and 1638 transitions. [2019-01-18 14:24:59,021 INFO L276 IsEmpty]: Start isEmpty. Operand 374 states and 1638 transitions. [2019-01-18 14:24:59,022 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:24:59,022 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:24:59,022 INFO L74 IsIncluded]: Start isIncluded. First operand 147 states. Second operand 374 states. [2019-01-18 14:24:59,022 INFO L87 Difference]: Start difference. First operand 147 states. Second operand 374 states. [2019-01-18 14:24:59,037 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:24:59,038 INFO L93 Difference]: Finished difference Result 374 states and 1638 transitions. [2019-01-18 14:24:59,038 INFO L276 IsEmpty]: Start isEmpty. Operand 374 states and 1638 transitions. [2019-01-18 14:24:59,038 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:24:59,038 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:24:59,038 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:24:59,038 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:24:59,038 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 147 states. [2019-01-18 14:24:59,041 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 147 states to 147 states and 607 transitions. [2019-01-18 14:24:59,041 INFO L78 Accepts]: Start accepts. Automaton has 147 states and 607 transitions. Word has length 7 [2019-01-18 14:24:59,041 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:24:59,041 INFO L480 AbstractCegarLoop]: Abstraction has 147 states and 607 transitions. [2019-01-18 14:24:59,041 INFO L481 AbstractCegarLoop]: Interpolant automaton has 13 states. [2019-01-18 14:24:59,041 INFO L276 IsEmpty]: Start isEmpty. Operand 147 states and 607 transitions. [2019-01-18 14:24:59,042 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-18 14:24:59,042 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:24:59,042 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-18 14:24:59,042 INFO L423 AbstractCegarLoop]: === Iteration 48 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:24:59,042 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:24:59,042 INFO L82 PathProgramCache]: Analyzing trace with hash 1924438182, now seen corresponding path program 1 times [2019-01-18 14:24:59,043 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:24:59,043 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:24:59,043 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:24:59,044 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:24:59,044 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:24:59,047 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:24:59,385 INFO L273 TraceCheckUtils]: 0: Hoare triple {32951#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {32953#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:24:59,387 INFO L273 TraceCheckUtils]: 1: Hoare triple {32953#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {32953#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:24:59,388 INFO L273 TraceCheckUtils]: 2: Hoare triple {32953#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {32954#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:24:59,388 INFO L273 TraceCheckUtils]: 3: Hoare triple {32954#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {32954#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:24:59,389 INFO L273 TraceCheckUtils]: 4: Hoare triple {32954#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {32954#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:24:59,389 INFO L273 TraceCheckUtils]: 5: Hoare triple {32954#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {32954#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:24:59,390 INFO L273 TraceCheckUtils]: 6: Hoare triple {32954#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {32952#false} is VALID [2019-01-18 14:24:59,390 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-18 14:24:59,390 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:24:59,390 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:24:59,391 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-18 14:24:59,391 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [20], [22], [24], [25] [2019-01-18 14:24:59,392 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:24:59,392 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:24:59,400 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:24:59,400 INFO L272 AbstractInterpreter]: Visited 7 different actions 7 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 3. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:24:59,400 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:24:59,400 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:24:59,401 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:24:59,401 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 46 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 46 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-18 14:24:59,411 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:24:59,411 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:24:59,415 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:24:59,421 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:24:59,422 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:24:59,450 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:24:59,459 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:59,460 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:24:59,475 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:59,476 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:59,477 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:24:59,497 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:59,498 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:59,500 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:59,501 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:24:59,507 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:24:59,527 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:24:59,539 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:24:59,549 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:24:59,569 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-18 14:24:59,569 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-18 14:24:59,578 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:24:59,579 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_276|, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_276| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:24:59,579 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:24:59,647 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:59,648 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:59,649 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:59,651 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:59,652 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:59,653 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:59,654 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:24:59,655 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-18 14:24:59,662 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:24:59,697 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-18 14:24:59,698 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-18 14:25:01,705 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:25:01,706 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_277|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_277| ULTIMATE.start_main_p1))) (and (= 0 .cse0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_277| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_277| ULTIMATE.start_main_p3)) (= (store |v_#memory_int_277| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (select |v_#memory_int_277| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:25:01,706 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:25:01,780 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:01,781 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:01,782 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:01,784 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:01,785 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:01,786 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:01,788 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:01,789 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:01,798 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:01,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, 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-18 14:25:01,805 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:25:01,838 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-18 14:25:01,839 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-18 14:25:01,953 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:25:01,954 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_278|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_278| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_278| ULTIMATE.start_main_p4)) (= |#memory_int| (store |v_#memory_int_278| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= (select |v_#memory_int_278| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_278| ULTIMATE.start_main_p1) 1) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:25:01,954 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:25:02,122 INFO L273 TraceCheckUtils]: 0: Hoare triple {32951#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {32958#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:25:02,124 INFO L273 TraceCheckUtils]: 1: Hoare triple {32958#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {32962#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:25:02,126 INFO L273 TraceCheckUtils]: 2: Hoare triple {32962#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {32966#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:25:02,127 INFO L273 TraceCheckUtils]: 3: Hoare triple {32966#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p1] >= 0; {32966#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:25:02,128 INFO L273 TraceCheckUtils]: 4: Hoare triple {32966#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p2] <= 0; {32966#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:25:02,128 INFO L273 TraceCheckUtils]: 5: Hoare triple {32966#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p3] >= 0; {32966#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:25:02,129 INFO L273 TraceCheckUtils]: 6: Hoare triple {32966#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume !(#memory_int[main_p4] <= 0); {32952#false} is VALID [2019-01-18 14:25:02,130 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-18 14:25:02,130 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:25:02,192 INFO L273 TraceCheckUtils]: 6: Hoare triple {32979#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {32952#false} is VALID [2019-01-18 14:25:02,193 INFO L273 TraceCheckUtils]: 5: Hoare triple {32979#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {32979#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:25:02,193 INFO L273 TraceCheckUtils]: 4: Hoare triple {32979#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {32979#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:25:02,194 INFO L273 TraceCheckUtils]: 3: Hoare triple {32979#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {32979#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:25:02,195 INFO L273 TraceCheckUtils]: 2: Hoare triple {32992#(<= (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {32979#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:25:02,196 INFO L273 TraceCheckUtils]: 1: Hoare triple {32996#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {32992#(<= (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:25:02,198 INFO L273 TraceCheckUtils]: 0: Hoare triple {32951#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {32996#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:25:02,198 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-18 14:25:02,218 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:25:02,219 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 3, 3] total 8 [2019-01-18 14:25:02,219 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:25:02,219 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 7 [2019-01-18 14:25:02,219 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:25:02,219 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states. [2019-01-18 14:25:02,240 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:25:02,240 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2019-01-18 14:25:02,240 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2019-01-18 14:25:02,240 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=36, Invalid=54, Unknown=0, NotChecked=0, Total=90 [2019-01-18 14:25:02,241 INFO L87 Difference]: Start difference. First operand 147 states and 607 transitions. Second operand 7 states. [2019-01-18 14:25:10,436 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:25:10,437 INFO L93 Difference]: Finished difference Result 157 states and 628 transitions. [2019-01-18 14:25:10,437 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-18 14:25:10,437 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 7 [2019-01-18 14:25:10,437 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:25:10,437 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-01-18 14:25:10,437 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 34 transitions. [2019-01-18 14:25:10,437 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-01-18 14:25:10,437 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 34 transitions. [2019-01-18 14:25:10,438 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 34 transitions. [2019-01-18 14:25:10,494 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 34 edges. 34 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:25:10,497 INFO L225 Difference]: With dead ends: 157 [2019-01-18 14:25:10,497 INFO L226 Difference]: Without dead ends: 150 [2019-01-18 14:25:10,497 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 19 GetRequests, 7 SyntacticMatches, 2 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 25 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=52, Invalid=80, Unknown=0, NotChecked=0, Total=132 [2019-01-18 14:25:10,497 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 150 states. [2019-01-18 14:25:18,140 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 150 to 149. [2019-01-18 14:25:18,140 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:25:18,141 INFO L82 GeneralOperation]: Start isEquivalent. First operand 150 states. Second operand 149 states. [2019-01-18 14:25:18,141 INFO L74 IsIncluded]: Start isIncluded. First operand 150 states. Second operand 149 states. [2019-01-18 14:25:18,141 INFO L87 Difference]: Start difference. First operand 150 states. Second operand 149 states. [2019-01-18 14:25:18,144 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:25:18,144 INFO L93 Difference]: Finished difference Result 150 states and 615 transitions. [2019-01-18 14:25:18,144 INFO L276 IsEmpty]: Start isEmpty. Operand 150 states and 615 transitions. [2019-01-18 14:25:18,145 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:25:18,145 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:25:18,145 INFO L74 IsIncluded]: Start isIncluded. First operand 149 states. Second operand 150 states. [2019-01-18 14:25:18,145 INFO L87 Difference]: Start difference. First operand 149 states. Second operand 150 states. [2019-01-18 14:25:18,148 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:25:18,148 INFO L93 Difference]: Finished difference Result 150 states and 615 transitions. [2019-01-18 14:25:18,148 INFO L276 IsEmpty]: Start isEmpty. Operand 150 states and 615 transitions. [2019-01-18 14:25:18,148 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:25:18,148 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:25:18,149 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:25:18,149 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:25:18,149 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 149 states. [2019-01-18 14:25:18,151 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 149 states to 149 states and 611 transitions. [2019-01-18 14:25:18,151 INFO L78 Accepts]: Start accepts. Automaton has 149 states and 611 transitions. Word has length 7 [2019-01-18 14:25:18,152 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:25:18,152 INFO L480 AbstractCegarLoop]: Abstraction has 149 states and 611 transitions. [2019-01-18 14:25:18,152 INFO L481 AbstractCegarLoop]: Interpolant automaton has 7 states. [2019-01-18 14:25:18,152 INFO L276 IsEmpty]: Start isEmpty. Operand 149 states and 611 transitions. [2019-01-18 14:25:18,152 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-18 14:25:18,152 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:25:18,152 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-18 14:25:18,152 INFO L423 AbstractCegarLoop]: === Iteration 49 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:25:18,153 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:25:18,153 INFO L82 PathProgramCache]: Analyzing trace with hash 1928011116, now seen corresponding path program 1 times [2019-01-18 14:25:18,153 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:25:18,153 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:25:18,153 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:25:18,154 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:25:18,154 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:25:18,156 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:25:18,414 INFO L273 TraceCheckUtils]: 0: Hoare triple {33888#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {33890#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:25:18,415 INFO L273 TraceCheckUtils]: 1: Hoare triple {33890#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {33890#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:25:18,416 INFO L273 TraceCheckUtils]: 2: Hoare triple {33890#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {33891#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:25:18,417 INFO L273 TraceCheckUtils]: 3: Hoare triple {33891#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {33892#(and (<= 1 (select |#memory_int| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:25:18,418 INFO L273 TraceCheckUtils]: 4: Hoare triple {33892#(and (<= 1 (select |#memory_int| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} assume #memory_int[main_p1] >= 0; {33893#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:25:18,418 INFO L273 TraceCheckUtils]: 5: Hoare triple {33893#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {33893#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:25:18,419 INFO L273 TraceCheckUtils]: 6: Hoare triple {33893#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {33889#false} is VALID [2019-01-18 14:25:18,419 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-18 14:25:18,420 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:25:18,420 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:25:18,420 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-18 14:25:18,420 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [16], [20], [22], [23] [2019-01-18 14:25:18,422 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:25:18,422 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:25:18,435 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:25:18,436 INFO L272 AbstractInterpreter]: Visited 7 different actions 7 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 3. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-18 14:25:18,436 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:25:18,436 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:25:18,436 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:25:18,436 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 47 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 47 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-18 14:25:18,445 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:25:18,445 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:25:18,449 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:25:18,456 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:25:18,456 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:25:18,495 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:25:18,505 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,505 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:25:18,527 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,528 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,528 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:25:18,548 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,550 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,551 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,551 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:25:18,558 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:25:18,578 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:25:18,591 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:25:18,602 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:25:18,617 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-18 14:25:18,618 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-18 14:25:18,625 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:25:18,625 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_281|, ULTIMATE.start_main_p2]. (and (= (store (store (store (store |v_#memory_int_281| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:25:18,626 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:25:18,691 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,692 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,693 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,694 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,696 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,697 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,698 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,699 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-18 14:25:18,705 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:25:18,737 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-18 14:25:18,737 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-18 14:25:18,747 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:25:18,747 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_282|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_282| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_282| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (select |v_#memory_int_282| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_282| ULTIMATE.start_main_p4)) (= .cse0 0) (= (select |v_#memory_int_282| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:25:18,747 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:25:18,814 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,815 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,817 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,818 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,819 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,820 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,822 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,823 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,823 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:25:18,824 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-18 14:25:18,830 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:25:18,863 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-18 14:25:18,863 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-18 14:25:18,869 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:25:18,870 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_283|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_283| ULTIMATE.start_main_p3))) (and (= 0 (select |v_#memory_int_283| ULTIMATE.start_main_p2)) (= |#memory_int| (store |v_#memory_int_283| ULTIMATE.start_main_p3 (+ .cse0 1))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_283| ULTIMATE.start_main_p4) 0) (= 1 (select |v_#memory_int_283| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 .cse0))) [2019-01-18 14:25:18,870 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:25:18,942 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,943 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,945 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,946 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,947 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,949 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,950 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,951 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,952 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:18,953 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-18 14:25:18,960 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:25:18,996 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-18 14:25:18,996 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-18 14:25:19,014 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:25:19,014 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_284|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_284| ULTIMATE.start_main_p4))) (and (= |#memory_int| (store |v_#memory_int_284| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_284| ULTIMATE.start_main_p2)) (= 1 (select |v_#memory_int_284| ULTIMATE.start_main_p3)) (= .cse0 0) (= 1 (select |v_#memory_int_284| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:25:19,014 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:25:19,124 INFO L273 TraceCheckUtils]: 0: Hoare triple {33888#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {33897#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:25:19,126 INFO L273 TraceCheckUtils]: 1: Hoare triple {33897#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {33901#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:25:19,128 INFO L273 TraceCheckUtils]: 2: Hoare triple {33901#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {33905#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:25:19,131 INFO L273 TraceCheckUtils]: 3: Hoare triple {33905#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {33909#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:25:19,132 INFO L273 TraceCheckUtils]: 4: Hoare triple {33909#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p1] >= 0; {33909#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:25:19,133 INFO L273 TraceCheckUtils]: 5: Hoare triple {33909#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p2] <= 0; {33909#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:25:19,133 INFO L273 TraceCheckUtils]: 6: Hoare triple {33909#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p3] >= 0); {33889#false} is VALID [2019-01-18 14:25:19,134 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-18 14:25:19,134 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:25:19,225 INFO L273 TraceCheckUtils]: 6: Hoare triple {33919#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {33889#false} is VALID [2019-01-18 14:25:19,226 INFO L273 TraceCheckUtils]: 5: Hoare triple {33919#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {33919#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:25:19,226 INFO L273 TraceCheckUtils]: 4: Hoare triple {33919#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {33919#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:25:19,227 INFO L273 TraceCheckUtils]: 3: Hoare triple {33929#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {33919#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:25:19,228 INFO L273 TraceCheckUtils]: 2: Hoare triple {33933#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {33929#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:25:19,230 INFO L273 TraceCheckUtils]: 1: Hoare triple {33937#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {33933#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:25:19,232 INFO L273 TraceCheckUtils]: 0: Hoare triple {33888#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {33937#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:25:19,233 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 5 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:25:19,252 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:25:19,252 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-18 14:25:19,252 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:25:19,252 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-18 14:25:19,253 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:25:19,253 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-18 14:25:19,274 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:25:19,274 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-18 14:25:19,275 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-18 14:25:19,275 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=69, Invalid=113, Unknown=0, NotChecked=0, Total=182 [2019-01-18 14:25:19,275 INFO L87 Difference]: Start difference. First operand 149 states and 611 transitions. Second operand 10 states. [2019-01-18 14:25:31,037 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:25:31,037 INFO L93 Difference]: Finished difference Result 206 states and 810 transitions. [2019-01-18 14:25:31,037 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-18 14:25:31,037 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-18 14:25:31,037 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:25:31,038 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:25:31,038 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 48 transitions. [2019-01-18 14:25:31,038 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:25:31,038 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 48 transitions. [2019-01-18 14:25:31,038 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 48 transitions. [2019-01-18 14:25:31,112 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 48 edges. 48 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:25:31,116 INFO L225 Difference]: With dead ends: 206 [2019-01-18 14:25:31,116 INFO L226 Difference]: Without dead ends: 199 [2019-01-18 14:25:31,117 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 20 GetRequests, 4 SyntacticMatches, 1 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 46 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=97, Invalid=175, Unknown=0, NotChecked=0, Total=272 [2019-01-18 14:25:31,117 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 199 states. [2019-01-18 14:25:41,088 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 199 to 158. [2019-01-18 14:25:41,088 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:25:41,088 INFO L82 GeneralOperation]: Start isEquivalent. First operand 199 states. Second operand 158 states. [2019-01-18 14:25:41,088 INFO L74 IsIncluded]: Start isIncluded. First operand 199 states. Second operand 158 states. [2019-01-18 14:25:41,089 INFO L87 Difference]: Start difference. First operand 199 states. Second operand 158 states. [2019-01-18 14:25:41,093 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:25:41,094 INFO L93 Difference]: Finished difference Result 199 states and 789 transitions. [2019-01-18 14:25:41,094 INFO L276 IsEmpty]: Start isEmpty. Operand 199 states and 789 transitions. [2019-01-18 14:25:41,094 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:25:41,094 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:25:41,094 INFO L74 IsIncluded]: Start isIncluded. First operand 158 states. Second operand 199 states. [2019-01-18 14:25:41,094 INFO L87 Difference]: Start difference. First operand 158 states. Second operand 199 states. [2019-01-18 14:25:41,104 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:25:41,104 INFO L93 Difference]: Finished difference Result 199 states and 789 transitions. [2019-01-18 14:25:41,104 INFO L276 IsEmpty]: Start isEmpty. Operand 199 states and 789 transitions. [2019-01-18 14:25:41,104 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:25:41,104 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:25:41,104 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:25:41,105 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:25:41,105 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 158 states. [2019-01-18 14:25:41,108 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 158 states to 158 states and 646 transitions. [2019-01-18 14:25:41,108 INFO L78 Accepts]: Start accepts. Automaton has 158 states and 646 transitions. Word has length 7 [2019-01-18 14:25:41,108 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:25:41,108 INFO L480 AbstractCegarLoop]: Abstraction has 158 states and 646 transitions. [2019-01-18 14:25:41,108 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-18 14:25:41,108 INFO L276 IsEmpty]: Start isEmpty. Operand 158 states and 646 transitions. [2019-01-18 14:25:41,109 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-18 14:25:41,109 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:25:41,109 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-18 14:25:41,109 INFO L423 AbstractCegarLoop]: === Iteration 50 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:25:41,110 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:25:41,110 INFO L82 PathProgramCache]: Analyzing trace with hash 2042527720, now seen corresponding path program 2 times [2019-01-18 14:25:41,110 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:25:41,110 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:25:41,110 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:25:41,111 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:25:41,111 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:25:41,115 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:25:41,379 INFO L273 TraceCheckUtils]: 0: Hoare triple {35035#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {35037#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:25:41,381 INFO L273 TraceCheckUtils]: 1: Hoare triple {35037#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {35037#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:25:41,382 INFO L273 TraceCheckUtils]: 2: Hoare triple {35037#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {35038#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:25:41,383 INFO L273 TraceCheckUtils]: 3: Hoare triple {35038#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {35039#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:25:41,383 INFO L273 TraceCheckUtils]: 4: Hoare triple {35039#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)))} assume #memory_int[main_p1] >= 0; {35039#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:25:41,384 INFO L273 TraceCheckUtils]: 5: Hoare triple {35039#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)))} assume #memory_int[main_p2] <= 0; {35040#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:25:41,385 INFO L273 TraceCheckUtils]: 6: Hoare triple {35040#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {35036#false} is VALID [2019-01-18 14:25:41,385 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-18 14:25:41,385 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:25:41,385 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:25:41,385 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-18 14:25:41,386 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-18 14:25:41,386 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:25:41,386 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 48 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 48 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-18 14:25:41,394 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-18 14:25:41,395 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-18 14:25:41,401 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-18 14:25:41,401 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-18 14:25:41,420 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:25:41,421 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:25:41,441 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:25:41,451 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-18 14:25:41,464 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:41,465 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-01-18 14:25:41,490 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:41,491 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:41,492 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-01-18 14:25:41,499 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:25:41,513 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:25:41,523 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:25:41,535 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:25:41,549 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-18 14:25:41,549 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:22, output treesize:27 [2019-01-18 14:25:41,559 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:25:41,559 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_288|, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_288| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:25:41,560 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:25:41,621 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:41,622 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:41,623 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:41,625 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:41,625 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 34 [2019-01-18 14:25:41,630 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:25:41,650 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-18 14:25:41,650 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-18 14:25:43,658 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:25:43,659 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_289|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_289| ULTIMATE.start_main_p2))) (and (= (store |v_#memory_int_289| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (select |v_#memory_int_289| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |v_#memory_int_289| ULTIMATE.start_main_p3) 0))) [2019-01-18 14:25:43,659 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:25:43,717 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:43,719 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:43,720 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:43,721 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:43,722 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:43,723 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:43,724 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-18 14:25:43,730 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:25:43,752 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-18 14:25:43,753 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:34, output treesize:24 [2019-01-18 14:25:43,761 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:25:43,761 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_290|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_290| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (store |v_#memory_int_290| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 (+ (select |v_#memory_int_290| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (select |v_#memory_int_290| ULTIMATE.start_main_p4)))) [2019-01-18 14:25:43,761 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:25:43,816 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:43,817 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:43,818 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:43,819 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:43,820 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:43,821 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:43,822 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:43,823 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:25:43,824 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 55 [2019-01-18 14:25:43,830 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:25:43,856 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-18 14:25:43,856 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:34, output treesize:24 [2019-01-18 14:25:43,870 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:25:43,871 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_291|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_291| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_291| ULTIMATE.start_main_p3) 1) (= 0 .cse0) (= (+ (select |v_#memory_int_291| ULTIMATE.start_main_p2) 1) 0) (= (store |v_#memory_int_291| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:25:43,871 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:25:43,973 INFO L273 TraceCheckUtils]: 0: Hoare triple {35035#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {35044#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:25:43,974 INFO L273 TraceCheckUtils]: 1: Hoare triple {35044#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {35048#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:25:43,976 INFO L273 TraceCheckUtils]: 2: Hoare triple {35048#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {35052#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:25:43,978 INFO L273 TraceCheckUtils]: 3: Hoare triple {35052#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {35056#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-18 14:25:43,979 INFO L273 TraceCheckUtils]: 4: Hoare triple {35056#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p1] >= 0; {35056#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-18 14:25:43,979 INFO L273 TraceCheckUtils]: 5: Hoare triple {35056#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p2] <= 0; {35056#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-18 14:25:43,980 INFO L273 TraceCheckUtils]: 6: Hoare triple {35056#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p3] >= 0); {35036#false} is VALID [2019-01-18 14:25:43,981 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-18 14:25:43,981 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:25:44,060 INFO L273 TraceCheckUtils]: 6: Hoare triple {35040#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {35036#false} is VALID [2019-01-18 14:25:44,061 INFO L273 TraceCheckUtils]: 5: Hoare triple {35040#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {35040#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:25:44,061 INFO L273 TraceCheckUtils]: 4: Hoare triple {35040#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {35040#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:25:44,062 INFO L273 TraceCheckUtils]: 3: Hoare triple {35075#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {35040#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:25:44,084 INFO L273 TraceCheckUtils]: 2: Hoare triple {35079#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {35075#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:25:44,099 INFO L273 TraceCheckUtils]: 1: Hoare triple {35083#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {35079#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:25:44,113 INFO L273 TraceCheckUtils]: 0: Hoare triple {35035#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {35083#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:25:44,114 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 3 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:25:44,137 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:25:44,138 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-18 14:25:44,138 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:25:44,138 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-18 14:25:44,138 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:25:44,138 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-18 14:25:44,161 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:25:44,162 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-18 14:25:44,162 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-18 14:25:44,162 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-01-18 14:25:44,162 INFO L87 Difference]: Start difference. First operand 158 states and 646 transitions. Second operand 10 states. [2019-01-18 14:25:55,440 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:25:55,440 INFO L93 Difference]: Finished difference Result 161 states and 653 transitions. [2019-01-18 14:25:55,440 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-18 14:25:55,440 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-18 14:25:55,440 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:25:55,441 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:25:55,445 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 33 transitions. [2019-01-18 14:25:55,445 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:25:55,445 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 33 transitions. [2019-01-18 14:25:55,445 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 33 transitions. [2019-01-18 14:25:55,500 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-18 14:25:55,503 INFO L225 Difference]: With dead ends: 161 [2019-01-18 14:25:55,503 INFO L226 Difference]: Without dead ends: 156 [2019-01-18 14:25:55,503 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 20 GetRequests, 5 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 43 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=89, Invalid=151, Unknown=0, NotChecked=0, Total=240 [2019-01-18 14:25:55,504 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 156 states. [2019-01-18 14:25:58,226 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 156 to 33. [2019-01-18 14:25:58,226 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:25:58,227 INFO L82 GeneralOperation]: Start isEquivalent. First operand 156 states. Second operand 33 states. [2019-01-18 14:25:58,227 INFO L74 IsIncluded]: Start isIncluded. First operand 156 states. Second operand 33 states. [2019-01-18 14:25:58,227 INFO L87 Difference]: Start difference. First operand 156 states. Second operand 33 states. [2019-01-18 14:25:58,231 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:25:58,231 INFO L93 Difference]: Finished difference Result 156 states and 632 transitions. [2019-01-18 14:25:58,231 INFO L276 IsEmpty]: Start isEmpty. Operand 156 states and 632 transitions. [2019-01-18 14:25:58,231 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:25:58,232 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:25:58,232 INFO L74 IsIncluded]: Start isIncluded. First operand 33 states. Second operand 156 states. [2019-01-18 14:25:58,232 INFO L87 Difference]: Start difference. First operand 33 states. Second operand 156 states. [2019-01-18 14:25:58,235 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:25:58,235 INFO L93 Difference]: Finished difference Result 156 states and 632 transitions. [2019-01-18 14:25:58,235 INFO L276 IsEmpty]: Start isEmpty. Operand 156 states and 632 transitions. [2019-01-18 14:25:58,236 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:25:58,236 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:25:58,236 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:25:58,236 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:25:58,236 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 33 states. [2019-01-18 14:25:58,237 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 33 states to 33 states and 119 transitions. [2019-01-18 14:25:58,237 INFO L78 Accepts]: Start accepts. Automaton has 33 states and 119 transitions. Word has length 7 [2019-01-18 14:25:58,237 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:25:58,237 INFO L480 AbstractCegarLoop]: Abstraction has 33 states and 119 transitions. [2019-01-18 14:25:58,237 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-18 14:25:58,237 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 119 transitions. [2019-01-18 14:25:58,237 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 9 [2019-01-18 14:25:58,237 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:25:58,237 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1] [2019-01-18 14:25:58,237 INFO L423 AbstractCegarLoop]: === Iteration 51 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:25:58,237 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:25:58,238 INFO L82 PathProgramCache]: Analyzing trace with hash -305786232, now seen corresponding path program 1 times [2019-01-18 14:25:58,238 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:25:58,238 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:25:58,238 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-18 14:25:58,238 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:25:58,239 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:25:58,241 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:25:58,524 INFO L273 TraceCheckUtils]: 0: Hoare triple {35775#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {35777#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:25:58,525 INFO L273 TraceCheckUtils]: 1: Hoare triple {35777#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {35778#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:25:58,526 INFO L273 TraceCheckUtils]: 2: Hoare triple {35778#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {35779#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-18 14:25:58,527 INFO L273 TraceCheckUtils]: 3: Hoare triple {35779#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {35780#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-18 14:25:58,528 INFO L273 TraceCheckUtils]: 4: Hoare triple {35780#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p1] >= 0; {35780#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-18 14:25:58,528 INFO L273 TraceCheckUtils]: 5: Hoare triple {35780#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p2] <= 0; {35780#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-18 14:25:58,529 INFO L273 TraceCheckUtils]: 6: Hoare triple {35780#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p3] >= 0; {35780#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-18 14:25:58,529 INFO L273 TraceCheckUtils]: 7: Hoare triple {35780#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume !(#memory_int[main_p4] <= 0); {35776#false} is VALID [2019-01-18 14:25:58,530 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-18 14:25:58,530 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:25:58,530 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:25:58,530 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 9 with the following transitions: [2019-01-18 14:25:58,531 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [16], [20], [22], [24], [25] [2019-01-18 14:25:58,533 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:25:58,533 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:25:58,544 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:25:58,544 INFO L272 AbstractInterpreter]: Visited 8 different actions 8 times. Never merged. Never widened. Performed 60 root evaluator evaluations with a maximum evaluation depth of 3. Performed 60 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-18 14:25:58,545 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:25:58,545 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:25:58,545 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:25:58,545 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 49 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 49 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-18 14:25:58,556 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:25:58,556 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:25:58,560 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:25:58,563 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:25:58,564 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:25:58,592 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:25:58,602 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:58,603 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:25:58,617 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:58,619 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:58,619 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:25:58,639 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:58,640 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:58,642 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:58,643 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:25:58,650 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:25:58,674 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:25:58,686 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:25:58,696 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:25:58,713 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-18 14:25:58,714 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-18 14:25:58,719 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:25:58,720 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_295|, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_295| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:25:58,720 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:25:58,787 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:58,789 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:58,790 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:58,791 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:58,793 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:58,794 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:58,795 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:25:58,796 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-18 14:25:58,804 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:25:58,837 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-18 14:25:58,837 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-18 14:26:00,842 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:26:00,842 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_296|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_296| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_296| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_296| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_296| ULTIMATE.start_main_p2) 0) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= |#memory_int| (store |v_#memory_int_296| ULTIMATE.start_main_p1 (+ .cse0 1))))) [2019-01-18 14:26:00,842 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:26:00,920 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:00,921 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:00,922 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:00,924 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:00,925 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:00,964 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:00,987 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:01,004 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:01,005 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:01,005 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-18 14:26:01,013 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:26:01,047 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-18 14:26:01,047 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-18 14:26:01,055 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:26:01,056 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_297|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_297| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_297| ULTIMATE.start_main_p1) 1) (= 0 (select |v_#memory_int_297| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_297| ULTIMATE.start_main_p2) 0) (= (store |v_#memory_int_297| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= .cse0 0))) [2019-01-18 14:26:01,056 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:26:01,132 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:01,133 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:01,134 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:01,135 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:01,136 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:01,138 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:01,139 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:01,140 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:01,141 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:01,142 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:01,142 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:26:01,143 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-18 14:26:01,149 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:26:01,189 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-18 14:26:01,189 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-18 14:26:01,200 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:26:01,200 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_298|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_298| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_298| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |v_#memory_int_298| ULTIMATE.start_main_p2)) (= (store |v_#memory_int_298| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 1 (select |v_#memory_int_298| ULTIMATE.start_main_p1)))) [2019-01-18 14:26:01,201 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:26:01,356 INFO L273 TraceCheckUtils]: 0: Hoare triple {35775#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {35784#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:26:01,376 INFO L273 TraceCheckUtils]: 1: Hoare triple {35784#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {35788#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:26:01,389 INFO L273 TraceCheckUtils]: 2: Hoare triple {35788#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {35792#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:26:01,391 INFO L273 TraceCheckUtils]: 3: Hoare triple {35792#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {35796#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:26:01,392 INFO L273 TraceCheckUtils]: 4: Hoare triple {35796#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p1] >= 0; {35796#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:26:01,392 INFO L273 TraceCheckUtils]: 5: Hoare triple {35796#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p2] <= 0; {35796#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:26:01,393 INFO L273 TraceCheckUtils]: 6: Hoare triple {35796#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p3] >= 0; {35796#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:26:01,394 INFO L273 TraceCheckUtils]: 7: Hoare triple {35796#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p4] <= 0); {35776#false} is VALID [2019-01-18 14:26:01,395 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-18 14:26:01,395 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:26:01,559 INFO L273 TraceCheckUtils]: 7: Hoare triple {35809#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {35776#false} is VALID [2019-01-18 14:26:01,561 INFO L273 TraceCheckUtils]: 6: Hoare triple {35809#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {35809#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:01,561 INFO L273 TraceCheckUtils]: 5: Hoare triple {35809#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {35809#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:01,564 INFO L273 TraceCheckUtils]: 4: Hoare triple {35809#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {35809#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:01,564 INFO L273 TraceCheckUtils]: 3: Hoare triple {35822#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {35809#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:01,566 INFO L273 TraceCheckUtils]: 2: Hoare triple {35826#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {35822#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:01,568 INFO L273 TraceCheckUtils]: 1: Hoare triple {35830#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {35826#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:01,570 INFO L273 TraceCheckUtils]: 0: Hoare triple {35775#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {35830#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:01,570 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 3 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:26:01,592 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:26:01,592 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-18 14:26:01,592 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:26:01,592 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 8 [2019-01-18 14:26:01,592 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:26:01,592 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-18 14:26:01,629 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 16 edges. 16 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:26:01,629 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-18 14:26:01,629 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-18 14:26:01,629 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=70, Invalid=112, Unknown=0, NotChecked=0, Total=182 [2019-01-18 14:26:01,629 INFO L87 Difference]: Start difference. First operand 33 states and 119 transitions. Second operand 10 states. [2019-01-18 14:26:07,165 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:26:07,165 INFO L93 Difference]: Finished difference Result 62 states and 209 transitions. [2019-01-18 14:26:07,166 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-18 14:26:07,166 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 8 [2019-01-18 14:26:07,166 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:26:07,166 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:26:07,167 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 45 transitions. [2019-01-18 14:26:07,167 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:26:07,167 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 45 transitions. [2019-01-18 14:26:07,167 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 45 transitions. [2019-01-18 14:26:07,230 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:26:07,231 INFO L225 Difference]: With dead ends: 62 [2019-01-18 14:26:07,231 INFO L226 Difference]: Without dead ends: 52 [2019-01-18 14:26:07,231 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 22 GetRequests, 7 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 60 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=88, Invalid=152, Unknown=0, NotChecked=0, Total=240 [2019-01-18 14:26:07,232 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 52 states. [2019-01-18 14:26:11,306 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 52 to 45. [2019-01-18 14:26:11,307 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:26:11,307 INFO L82 GeneralOperation]: Start isEquivalent. First operand 52 states. Second operand 45 states. [2019-01-18 14:26:11,307 INFO L74 IsIncluded]: Start isIncluded. First operand 52 states. Second operand 45 states. [2019-01-18 14:26:11,307 INFO L87 Difference]: Start difference. First operand 52 states. Second operand 45 states. [2019-01-18 14:26:11,309 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:26:11,309 INFO L93 Difference]: Finished difference Result 52 states and 195 transitions. [2019-01-18 14:26:11,309 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 195 transitions. [2019-01-18 14:26:11,309 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:26:11,309 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:26:11,310 INFO L74 IsIncluded]: Start isIncluded. First operand 45 states. Second operand 52 states. [2019-01-18 14:26:11,310 INFO L87 Difference]: Start difference. First operand 45 states. Second operand 52 states. [2019-01-18 14:26:11,311 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:26:11,311 INFO L93 Difference]: Finished difference Result 52 states and 195 transitions. [2019-01-18 14:26:11,311 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 195 transitions. [2019-01-18 14:26:11,312 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:26:11,312 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:26:11,312 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:26:11,312 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:26:11,312 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 45 states. [2019-01-18 14:26:11,313 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 45 states to 45 states and 167 transitions. [2019-01-18 14:26:11,313 INFO L78 Accepts]: Start accepts. Automaton has 45 states and 167 transitions. Word has length 8 [2019-01-18 14:26:11,313 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:26:11,313 INFO L480 AbstractCegarLoop]: Abstraction has 45 states and 167 transitions. [2019-01-18 14:26:11,313 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-18 14:26:11,313 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 167 transitions. [2019-01-18 14:26:11,314 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 9 [2019-01-18 14:26:11,314 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:26:11,314 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1] [2019-01-18 14:26:11,314 INFO L423 AbstractCegarLoop]: === Iteration 52 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:26:11,314 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:26:11,314 INFO L82 PathProgramCache]: Analyzing trace with hash -477561138, now seen corresponding path program 1 times [2019-01-18 14:26:11,314 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:26:11,315 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:26:11,315 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:26:11,315 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:26:11,315 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:26:11,318 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:26:11,747 INFO L273 TraceCheckUtils]: 0: Hoare triple {36135#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {36137#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:26:11,748 INFO L273 TraceCheckUtils]: 1: Hoare triple {36137#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36137#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:26:11,750 INFO L273 TraceCheckUtils]: 2: Hoare triple {36137#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {36137#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:26:11,751 INFO L273 TraceCheckUtils]: 3: Hoare triple {36137#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {36138#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:11,752 INFO L273 TraceCheckUtils]: 4: Hoare triple {36138#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {36138#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:11,752 INFO L273 TraceCheckUtils]: 5: Hoare triple {36138#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {36138#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:11,755 INFO L273 TraceCheckUtils]: 6: Hoare triple {36138#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {36138#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:11,755 INFO L273 TraceCheckUtils]: 7: Hoare triple {36138#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {36136#false} is VALID [2019-01-18 14:26:11,756 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2019-01-18 14:26:11,756 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:26:11,756 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:26:11,756 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 9 with the following transitions: [2019-01-18 14:26:11,757 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [20], [22], [24], [25] [2019-01-18 14:26:11,757 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:26:11,757 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:26:11,775 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:26:11,775 INFO L272 AbstractInterpreter]: Visited 8 different actions 8 times. Never merged. Never widened. Performed 60 root evaluator evaluations with a maximum evaluation depth of 3. Performed 60 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-18 14:26:11,775 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:26:11,776 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:26:11,776 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:26:11,776 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 50 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 50 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-18 14:26:11,785 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:26:11,785 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:26:11,789 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:26:11,793 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:26:11,793 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:26:11,822 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:26:11,832 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:11,833 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:26:11,863 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:11,864 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:11,864 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:26:11,883 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:11,885 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:11,886 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:11,887 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:26:11,893 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:26:11,913 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:26:11,926 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:26:11,936 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:26:11,954 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:26:11,954 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-18 14:26:11,960 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:26:11,960 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_302|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_302| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:26:11,961 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:26:12,033 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:12,034 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:12,035 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:12,037 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:12,038 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:12,039 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:12,040 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:12,041 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-18 14:26:12,048 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:26:12,077 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-18 14:26:12,078 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-18 14:26:12,119 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:26:12,119 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_303|, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_303| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_303| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_303| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_303| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 0 .cse0) (= 0 (select |v_#memory_int_303| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:26:12,119 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:26:12,197 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:12,198 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:12,199 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:12,200 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:12,202 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:12,203 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:12,204 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:12,205 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:12,206 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:12,207 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-18 14:26:12,214 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:26:12,248 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-18 14:26:12,248 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-18 14:26:12,256 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:26:12,256 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_304|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_304| ULTIMATE.start_main_p2))) (and (= 0 (select |v_#memory_int_304| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |v_#memory_int_304| ULTIMATE.start_main_p1)) (= 0 .cse0) (= 0 (select |v_#memory_int_304| ULTIMATE.start_main_p4)) (= (store |v_#memory_int_304| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:26:12,257 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:26:12,328 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:12,329 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:12,330 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:12,331 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:12,333 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:12,334 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:12,335 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:12,336 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:12,337 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:12,338 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:12,338 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:26:12,339 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-18 14:26:12,347 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:26:12,389 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-18 14:26:12,389 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-18 14:26:12,400 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:26:12,401 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_305|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_305| ULTIMATE.start_main_p3))) (and (= 1 (select |v_#memory_int_305| ULTIMATE.start_main_p1)) (= .cse0 0) (= (select |v_#memory_int_305| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_305| ULTIMATE.start_main_p2) 1)) (= (store |v_#memory_int_305| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:26:12,401 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:26:12,541 INFO L273 TraceCheckUtils]: 0: Hoare triple {36135#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {36142#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:26:12,543 INFO L273 TraceCheckUtils]: 1: Hoare triple {36142#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36146#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:26:12,545 INFO L273 TraceCheckUtils]: 2: Hoare triple {36146#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {36150#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:26:12,548 INFO L273 TraceCheckUtils]: 3: Hoare triple {36150#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {36154#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:26:12,549 INFO L273 TraceCheckUtils]: 4: Hoare triple {36154#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p1] >= 0; {36154#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:26:12,549 INFO L273 TraceCheckUtils]: 5: Hoare triple {36154#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p2] <= 0; {36154#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:26:12,550 INFO L273 TraceCheckUtils]: 6: Hoare triple {36154#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p3] >= 0; {36154#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:26:12,550 INFO L273 TraceCheckUtils]: 7: Hoare triple {36154#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume !(#memory_int[main_p4] <= 0); {36136#false} is VALID [2019-01-18 14:26:12,551 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-18 14:26:12,551 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:26:12,653 INFO L273 TraceCheckUtils]: 7: Hoare triple {36167#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {36136#false} is VALID [2019-01-18 14:26:12,653 INFO L273 TraceCheckUtils]: 6: Hoare triple {36167#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {36167#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:12,654 INFO L273 TraceCheckUtils]: 5: Hoare triple {36167#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {36167#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:12,654 INFO L273 TraceCheckUtils]: 4: Hoare triple {36167#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {36167#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:12,655 INFO L273 TraceCheckUtils]: 3: Hoare triple {36180#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {36167#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:12,657 INFO L273 TraceCheckUtils]: 2: Hoare triple {36184#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {36180#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:12,659 INFO L273 TraceCheckUtils]: 1: Hoare triple {36188#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36184#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:12,661 INFO L273 TraceCheckUtils]: 0: Hoare triple {36135#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {36188#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:12,661 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-18 14:26:12,681 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:26:12,681 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 4, 4] total 10 [2019-01-18 14:26:12,681 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:26:12,682 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 8 [2019-01-18 14:26:12,682 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:26:12,682 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:26:12,705 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 16 edges. 16 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:26:12,705 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:26:12,705 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:26:12,705 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=46, Invalid=86, Unknown=0, NotChecked=0, Total=132 [2019-01-18 14:26:12,706 INFO L87 Difference]: Start difference. First operand 45 states and 167 transitions. Second operand 8 states. [2019-01-18 14:26:18,230 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:26:18,230 INFO L93 Difference]: Finished difference Result 59 states and 204 transitions. [2019-01-18 14:26:18,230 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-18 14:26:18,230 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 8 [2019-01-18 14:26:18,231 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:26:18,231 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:26:18,231 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 37 transitions. [2019-01-18 14:26:18,232 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:26:18,232 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 37 transitions. [2019-01-18 14:26:18,232 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 37 transitions. [2019-01-18 14:26:18,621 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 37 edges. 37 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:26:18,623 INFO L225 Difference]: With dead ends: 59 [2019-01-18 14:26:18,623 INFO L226 Difference]: Without dead ends: 52 [2019-01-18 14:26:18,623 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 24 GetRequests, 7 SyntacticMatches, 4 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 41 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=73, Invalid=137, Unknown=0, NotChecked=0, Total=210 [2019-01-18 14:26:18,623 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 52 states. [2019-01-18 14:26:23,110 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 52 to 45. [2019-01-18 14:26:23,110 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:26:23,110 INFO L82 GeneralOperation]: Start isEquivalent. First operand 52 states. Second operand 45 states. [2019-01-18 14:26:23,110 INFO L74 IsIncluded]: Start isIncluded. First operand 52 states. Second operand 45 states. [2019-01-18 14:26:23,110 INFO L87 Difference]: Start difference. First operand 52 states. Second operand 45 states. [2019-01-18 14:26:23,111 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:26:23,112 INFO L93 Difference]: Finished difference Result 52 states and 195 transitions. [2019-01-18 14:26:23,112 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 195 transitions. [2019-01-18 14:26:23,112 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:26:23,112 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:26:23,112 INFO L74 IsIncluded]: Start isIncluded. First operand 45 states. Second operand 52 states. [2019-01-18 14:26:23,112 INFO L87 Difference]: Start difference. First operand 45 states. Second operand 52 states. [2019-01-18 14:26:23,114 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:26:23,114 INFO L93 Difference]: Finished difference Result 52 states and 195 transitions. [2019-01-18 14:26:23,114 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 195 transitions. [2019-01-18 14:26:23,114 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:26:23,114 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:26:23,114 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:26:23,114 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:26:23,115 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 45 states. [2019-01-18 14:26:23,115 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 45 states to 45 states and 167 transitions. [2019-01-18 14:26:23,115 INFO L78 Accepts]: Start accepts. Automaton has 45 states and 167 transitions. Word has length 8 [2019-01-18 14:26:23,116 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:26:23,116 INFO L480 AbstractCegarLoop]: Abstraction has 45 states and 167 transitions. [2019-01-18 14:26:23,116 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:26:23,116 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 167 transitions. [2019-01-18 14:26:23,116 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 10 [2019-01-18 14:26:23,116 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:26:23,116 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1, 1, 1] [2019-01-18 14:26:23,116 INFO L423 AbstractCegarLoop]: === Iteration 53 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:26:23,116 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:26:23,116 INFO L82 PathProgramCache]: Analyzing trace with hash -1160942496, now seen corresponding path program 2 times [2019-01-18 14:26:23,117 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:26:23,117 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:26:23,117 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:26:23,117 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:26:23,117 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:26:23,119 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:26:23,494 INFO L273 TraceCheckUtils]: 0: Hoare triple {36492#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {36494#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:26:23,495 INFO L273 TraceCheckUtils]: 1: Hoare triple {36494#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {36495#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-18 14:26:23,496 INFO L273 TraceCheckUtils]: 2: Hoare triple {36495#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36495#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-18 14:26:23,497 INFO L273 TraceCheckUtils]: 3: Hoare triple {36495#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36495#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-18 14:26:23,497 INFO L273 TraceCheckUtils]: 4: Hoare triple {36495#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {36496#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-18 14:26:23,498 INFO L273 TraceCheckUtils]: 5: Hoare triple {36496#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p1] >= 0; {36496#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-18 14:26:23,498 INFO L273 TraceCheckUtils]: 6: Hoare triple {36496#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p2] <= 0; {36496#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-18 14:26:23,498 INFO L273 TraceCheckUtils]: 7: Hoare triple {36496#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p3] >= 0; {36496#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-18 14:26:23,499 INFO L273 TraceCheckUtils]: 8: Hoare triple {36496#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume !(#memory_int[main_p4] <= 0); {36493#false} is VALID [2019-01-18 14:26:23,500 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 7 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2019-01-18 14:26:23,500 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:26:23,500 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:26:23,500 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-18 14:26:23,500 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-18 14:26:23,500 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:26:23,500 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 51 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 51 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-18 14:26:23,511 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-18 14:26:23,511 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-18 14:26:23,518 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-18 14:26:23,518 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-18 14:26:23,521 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:26:23,521 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:26:23,558 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:26:23,570 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:23,571 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:26:23,593 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:23,595 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:23,595 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:26:23,616 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:23,618 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:23,619 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:23,620 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:26:23,628 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:26:23,648 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:26:23,660 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:26:23,670 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:26:23,687 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-18 14:26:23,688 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-18 14:26:23,693 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:26:23,693 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_309|, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_309| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:26:23,693 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:26:23,764 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:23,765 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:23,766 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:23,767 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:23,768 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:23,770 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:23,771 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:23,771 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-18 14:26:23,779 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:26:23,823 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-18 14:26:23,824 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-18 14:26:23,842 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:26:23,842 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_310|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_310| ULTIMATE.start_main_p4))) (and (= 0 (select |v_#memory_int_310| ULTIMATE.start_main_p2)) (= (store |v_#memory_int_310| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_310| ULTIMATE.start_main_p1)) (= .cse0 0) (= 0 (select |v_#memory_int_310| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:26:23,842 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:26:23,909 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:23,910 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:23,912 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:23,913 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:23,914 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:23,915 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:23,917 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:23,918 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:23,919 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:23,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, 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-18 14:26:23,927 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:26:23,963 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-18 14:26:23,963 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:42, output treesize:32 [2019-01-18 14:26:23,969 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:26:23,969 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_311|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_311| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_311| ULTIMATE.start_main_p4) 1) 0) (= |#memory_int| (store |v_#memory_int_311| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 0 .cse0) (= 0 (select |v_#memory_int_311| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (select |v_#memory_int_311| ULTIMATE.start_main_p3)))) [2019-01-18 14:26:23,969 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:26:24,043 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:24,044 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:24,046 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:24,047 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:24,048 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:24,049 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:24,051 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:24,052 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:24,053 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:24,054 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:24,055 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:24,056 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:24,057 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 12 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 79 [2019-01-18 14:26:24,064 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:26:24,102 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-18 14:26:24,102 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-18 14:26:24,112 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:26:24,112 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_312|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_312| ULTIMATE.start_main_p1))) (and (= 0 (+ (select |v_#memory_int_312| ULTIMATE.start_main_p4) 1)) (= |#memory_int| (store |v_#memory_int_312| ULTIMATE.start_main_p1 (+ .cse0 1))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_312| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_312| ULTIMATE.start_main_p2) 0) (= .cse0 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:26:24,113 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:26:24,185 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:24,186 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:24,187 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:24,189 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:24,190 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:24,191 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:24,192 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:24,193 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:24,195 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:24,196 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:24,197 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:24,198 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:24,199 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 12 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 89 [2019-01-18 14:26:24,206 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:26:24,248 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-18 14:26:24,248 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-18 14:26:26,479 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:26:26,479 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_313|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_313| ULTIMATE.start_main_p3))) (and (= (store |v_#memory_int_313| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 2 (select |v_#memory_int_313| ULTIMATE.start_main_p1)) (= .cse0 0) (= (select |v_#memory_int_313| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |v_#memory_int_313| ULTIMATE.start_main_p4) 1) 0))) [2019-01-18 14:26:26,479 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:26:26,653 INFO L273 TraceCheckUtils]: 0: Hoare triple {36492#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {36500#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:26:26,655 INFO L273 TraceCheckUtils]: 1: Hoare triple {36500#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {36504#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:26:26,657 INFO L273 TraceCheckUtils]: 2: Hoare triple {36504#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36508#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:26:26,659 INFO L273 TraceCheckUtils]: 3: Hoare triple {36508#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36512#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:26:26,662 INFO L273 TraceCheckUtils]: 4: Hoare triple {36512#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {36516#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:26:26,663 INFO L273 TraceCheckUtils]: 5: Hoare triple {36516#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p1] >= 0; {36516#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:26:26,664 INFO L273 TraceCheckUtils]: 6: Hoare triple {36516#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p2] <= 0; {36516#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:26:26,664 INFO L273 TraceCheckUtils]: 7: Hoare triple {36516#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p3] >= 0; {36516#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:26:26,665 INFO L273 TraceCheckUtils]: 8: Hoare triple {36516#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p4] <= 0); {36493#false} is VALID [2019-01-18 14:26:26,666 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:26:26,670 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:26:26,808 INFO L273 TraceCheckUtils]: 8: Hoare triple {36529#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {36493#false} is VALID [2019-01-18 14:26:26,809 INFO L273 TraceCheckUtils]: 7: Hoare triple {36529#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {36529#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:26,809 INFO L273 TraceCheckUtils]: 6: Hoare triple {36529#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {36529#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:26,810 INFO L273 TraceCheckUtils]: 5: Hoare triple {36529#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {36529#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:26,811 INFO L273 TraceCheckUtils]: 4: Hoare triple {36542#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {36529#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:26,812 INFO L273 TraceCheckUtils]: 3: Hoare triple {36546#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36542#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:26,814 INFO L273 TraceCheckUtils]: 2: Hoare triple {36550#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36546#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:26,815 INFO L273 TraceCheckUtils]: 1: Hoare triple {36554#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {36550#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:26,818 INFO L273 TraceCheckUtils]: 0: Hoare triple {36492#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {36554#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:26,818 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 2 proven. 8 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:26:26,837 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:26:26,837 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 5, 5] total 13 [2019-01-18 14:26:26,837 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:26:26,838 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 9 [2019-01-18 14:26:26,838 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:26:26,838 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-18 14:26:26,871 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 17 edges. 17 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:26:26,871 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-18 14:26:26,871 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-18 14:26:26,871 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=76, Invalid=134, Unknown=0, NotChecked=0, Total=210 [2019-01-18 14:26:26,871 INFO L87 Difference]: Start difference. First operand 45 states and 167 transitions. Second operand 10 states. [2019-01-18 14:26:34,020 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:26:34,021 INFO L93 Difference]: Finished difference Result 67 states and 237 transitions. [2019-01-18 14:26:34,021 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-18 14:26:34,021 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 9 [2019-01-18 14:26:34,021 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:26:34,021 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:26:34,022 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 45 transitions. [2019-01-18 14:26:34,022 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:26:34,022 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 45 transitions. [2019-01-18 14:26:34,022 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 45 transitions. [2019-01-18 14:26:34,097 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:26:34,097 INFO L225 Difference]: With dead ends: 67 [2019-01-18 14:26:34,097 INFO L226 Difference]: Without dead ends: 32 [2019-01-18 14:26:34,098 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 25 GetRequests, 8 SyntacticMatches, 2 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 73 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=96, Invalid=176, Unknown=0, NotChecked=0, Total=272 [2019-01-18 14:26:34,098 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 32 states. [2019-01-18 14:26:37,206 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 32 to 30. [2019-01-18 14:26:37,207 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:26:37,207 INFO L82 GeneralOperation]: Start isEquivalent. First operand 32 states. Second operand 30 states. [2019-01-18 14:26:37,207 INFO L74 IsIncluded]: Start isIncluded. First operand 32 states. Second operand 30 states. [2019-01-18 14:26:37,207 INFO L87 Difference]: Start difference. First operand 32 states. Second operand 30 states. [2019-01-18 14:26:37,207 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:26:37,208 INFO L93 Difference]: Finished difference Result 32 states and 106 transitions. [2019-01-18 14:26:37,208 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 106 transitions. [2019-01-18 14:26:37,208 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:26:37,208 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:26:37,208 INFO L74 IsIncluded]: Start isIncluded. First operand 30 states. Second operand 32 states. [2019-01-18 14:26:37,208 INFO L87 Difference]: Start difference. First operand 30 states. Second operand 32 states. [2019-01-18 14:26:37,209 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:26:37,209 INFO L93 Difference]: Finished difference Result 32 states and 106 transitions. [2019-01-18 14:26:37,209 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 106 transitions. [2019-01-18 14:26:37,209 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:26:37,209 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:26:37,209 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:26:37,209 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:26:37,209 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 30 states. [2019-01-18 14:26:37,210 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 30 states to 30 states and 100 transitions. [2019-01-18 14:26:37,210 INFO L78 Accepts]: Start accepts. Automaton has 30 states and 100 transitions. Word has length 9 [2019-01-18 14:26:37,210 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:26:37,210 INFO L480 AbstractCegarLoop]: Abstraction has 30 states and 100 transitions. [2019-01-18 14:26:37,210 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-18 14:26:37,210 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 100 transitions. [2019-01-18 14:26:37,210 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 10 [2019-01-18 14:26:37,210 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:26:37,210 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1, 1, 1] [2019-01-18 14:26:37,211 INFO L423 AbstractCegarLoop]: === Iteration 54 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:26:37,211 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:26:37,211 INFO L82 PathProgramCache]: Analyzing trace with hash -1292813016, now seen corresponding path program 1 times [2019-01-18 14:26:37,211 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:26:37,212 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:26:37,212 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-18 14:26:37,212 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:26:37,212 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:26:37,214 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:26:37,519 INFO L273 TraceCheckUtils]: 0: Hoare triple {36802#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {36804#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:26:37,520 INFO L273 TraceCheckUtils]: 1: Hoare triple {36804#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36804#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:26:37,521 INFO L273 TraceCheckUtils]: 2: Hoare triple {36804#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36804#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:26:37,522 INFO L273 TraceCheckUtils]: 3: Hoare triple {36804#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {36805#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:37,523 INFO L273 TraceCheckUtils]: 4: Hoare triple {36805#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {36806#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-18 14:26:37,524 INFO L273 TraceCheckUtils]: 5: Hoare triple {36806#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p1] >= 0; {36806#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-18 14:26:37,524 INFO L273 TraceCheckUtils]: 6: Hoare triple {36806#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p2] <= 0; {36806#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-18 14:26:37,525 INFO L273 TraceCheckUtils]: 7: Hoare triple {36806#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p3] >= 0; {36806#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-18 14:26:37,525 INFO L273 TraceCheckUtils]: 8: Hoare triple {36806#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume !(#memory_int[main_p4] <= 0); {36803#false} is VALID [2019-01-18 14:26:37,526 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 7 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2019-01-18 14:26:37,526 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:26:37,526 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:26:37,527 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 10 with the following transitions: [2019-01-18 14:26:37,527 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [16], [20], [22], [24], [25] [2019-01-18 14:26:37,529 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:26:37,529 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:26:37,539 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:26:37,540 INFO L272 AbstractInterpreter]: Visited 8 different actions 8 times. Never merged. Never widened. Performed 60 root evaluator evaluations with a maximum evaluation depth of 3. Performed 60 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-18 14:26:37,540 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:26:37,540 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:26:37,540 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:26:37,540 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 52 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 52 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-18 14:26:37,551 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:26:37,551 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:26:37,555 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:26:37,559 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:26:37,560 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:26:37,593 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:26:37,604 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:37,605 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:26:37,620 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:37,622 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:37,622 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:26:37,643 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:37,645 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:37,646 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:37,647 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:26:37,654 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:26:37,673 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:26:37,685 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:26:37,696 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:26:37,714 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-18 14:26:37,715 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-18 14:26:37,721 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:26:37,721 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_318|, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_318| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:26:37,721 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:26:37,795 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:37,797 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:37,798 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:37,799 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:37,800 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:37,802 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:37,803 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:37,803 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-18 14:26:37,811 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:26:37,845 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-18 14:26:37,846 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-18 14:26:37,860 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:26:37,860 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_319|, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_319| ULTIMATE.start_main_p1))) (and (= (store |v_#memory_int_319| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_319| ULTIMATE.start_main_p4) 0) (= 0 (select |v_#memory_int_319| ULTIMATE.start_main_p3)) (= 0 (select |v_#memory_int_319| ULTIMATE.start_main_p2)) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:26:37,860 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:26:37,938 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:37,947 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:37,950 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:37,951 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:37,951 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:37,952 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:37,953 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:37,954 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:37,956 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:37,956 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-18 14:26:37,964 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:26:37,998 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-18 14:26:37,999 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-18 14:26:38,036 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:26:38,037 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_320|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_320| ULTIMATE.start_main_p1))) (and (= (select |v_#memory_int_320| ULTIMATE.start_main_p3) 0) (= .cse0 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_320| ULTIMATE.start_main_p4)) (= |#memory_int| (store |v_#memory_int_320| ULTIMATE.start_main_p1 (+ .cse0 1))) (= (select |v_#memory_int_320| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:26:38,037 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:26:38,110 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:38,112 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:38,113 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:38,114 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:38,115 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:38,117 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:38,118 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:38,119 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:38,120 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:38,121 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-18 14:26:38,128 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:26:38,166 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-18 14:26:38,166 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-18 14:26:40,185 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:26:40,185 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_321|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_321| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_321| ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_321| ULTIMATE.start_main_p3)) (= 2 (select |v_#memory_int_321| ULTIMATE.start_main_p1)) (= (store |v_#memory_int_321| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 .cse0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:26:40,185 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:26:40,268 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:40,269 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:40,271 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:40,272 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:40,273 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:40,274 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:40,275 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:40,277 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:40,278 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:40,279 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:40,280 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:40,280 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:26:40,281 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 78 [2019-01-18 14:26:40,289 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:26:40,334 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-18 14:26:40,335 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-18 14:26:40,347 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:26:40,348 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_322|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_322| ULTIMATE.start_main_p4))) (and (= 0 (select |v_#memory_int_322| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_322| ULTIMATE.start_main_p2) 1)) (= (store |v_#memory_int_322| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= 2 (select |v_#memory_int_322| ULTIMATE.start_main_p1)) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:26:40,348 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-18 14:26:40,524 INFO L273 TraceCheckUtils]: 0: Hoare triple {36802#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {36810#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:26:40,526 INFO L273 TraceCheckUtils]: 1: Hoare triple {36810#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36814#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:26:40,528 INFO L273 TraceCheckUtils]: 2: Hoare triple {36814#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36818#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:26:40,531 INFO L273 TraceCheckUtils]: 3: Hoare triple {36818#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {36822#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:26:40,534 INFO L273 TraceCheckUtils]: 4: Hoare triple {36822#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {36826#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-18 14:26:40,535 INFO L273 TraceCheckUtils]: 5: Hoare triple {36826#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p1] >= 0; {36826#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-18 14:26:40,536 INFO L273 TraceCheckUtils]: 6: Hoare triple {36826#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p2] <= 0; {36826#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-18 14:26:40,537 INFO L273 TraceCheckUtils]: 7: Hoare triple {36826#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p3] >= 0; {36826#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-18 14:26:40,538 INFO L273 TraceCheckUtils]: 8: Hoare triple {36826#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p4] <= 0); {36803#false} is VALID [2019-01-18 14:26:40,539 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:26:40,539 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:26:40,657 INFO L273 TraceCheckUtils]: 8: Hoare triple {36839#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {36803#false} is VALID [2019-01-18 14:26:40,658 INFO L273 TraceCheckUtils]: 7: Hoare triple {36839#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {36839#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:40,658 INFO L273 TraceCheckUtils]: 6: Hoare triple {36839#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {36839#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:40,659 INFO L273 TraceCheckUtils]: 5: Hoare triple {36839#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {36839#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:40,660 INFO L273 TraceCheckUtils]: 4: Hoare triple {36852#(<= (select |#memory_int| ULTIMATE.start_main_p4) 1)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {36839#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:40,661 INFO L273 TraceCheckUtils]: 3: Hoare triple {36856#(<= (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 1)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {36852#(<= (select |#memory_int| ULTIMATE.start_main_p4) 1)} is VALID [2019-01-18 14:26:40,663 INFO L273 TraceCheckUtils]: 2: Hoare triple {36860#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 1)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36856#(<= (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 1)} is VALID [2019-01-18 14:26:40,664 INFO L273 TraceCheckUtils]: 1: Hoare triple {36864#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 1)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36860#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 1)} is VALID [2019-01-18 14:26:40,666 INFO L273 TraceCheckUtils]: 0: Hoare triple {36802#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {36864#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 1)} is VALID [2019-01-18 14:26:40,667 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 4 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:26:40,686 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:26:40,686 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 5, 5] total 13 [2019-01-18 14:26:40,686 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:26:40,686 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 9 [2019-01-18 14:26:40,687 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:26:40,687 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-18 14:26:40,717 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 17 edges. 17 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:26:40,718 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-18 14:26:40,718 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-18 14:26:40,718 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=79, Invalid=131, Unknown=0, NotChecked=0, Total=210 [2019-01-18 14:26:40,718 INFO L87 Difference]: Start difference. First operand 30 states and 100 transitions. Second operand 10 states. [2019-01-18 14:26:45,733 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:26:45,733 INFO L93 Difference]: Finished difference Result 47 states and 147 transitions. [2019-01-18 14:26:45,733 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-18 14:26:45,734 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 9 [2019-01-18 14:26:45,734 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:26:45,734 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:26:45,734 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 42 transitions. [2019-01-18 14:26:45,734 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:26:45,735 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 42 transitions. [2019-01-18 14:26:45,735 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 42 transitions. [2019-01-18 14:26:45,795 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 42 edges. 42 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:26:45,796 INFO L225 Difference]: With dead ends: 47 [2019-01-18 14:26:45,796 INFO L226 Difference]: Without dead ends: 40 [2019-01-18 14:26:45,797 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 25 GetRequests, 8 SyntacticMatches, 2 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 73 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=99, Invalid=173, Unknown=0, NotChecked=0, Total=272 [2019-01-18 14:26:45,797 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 40 states. [2019-01-18 14:26:49,793 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 40 to 36. [2019-01-18 14:26:49,793 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:26:49,794 INFO L82 GeneralOperation]: Start isEquivalent. First operand 40 states. Second operand 36 states. [2019-01-18 14:26:49,794 INFO L74 IsIncluded]: Start isIncluded. First operand 40 states. Second operand 36 states. [2019-01-18 14:26:49,794 INFO L87 Difference]: Start difference. First operand 40 states. Second operand 36 states. [2019-01-18 14:26:49,794 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:26:49,795 INFO L93 Difference]: Finished difference Result 40 states and 138 transitions. [2019-01-18 14:26:49,795 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 138 transitions. [2019-01-18 14:26:49,795 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:26:49,795 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:26:49,795 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 40 states. [2019-01-18 14:26:49,795 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 40 states. [2019-01-18 14:26:49,796 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:26:49,796 INFO L93 Difference]: Finished difference Result 40 states and 138 transitions. [2019-01-18 14:26:49,796 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 138 transitions. [2019-01-18 14:26:49,796 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:26:49,796 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:26:49,796 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:26:49,796 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:26:49,796 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 36 states. [2019-01-18 14:26:49,797 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 36 states to 36 states and 122 transitions. [2019-01-18 14:26:49,797 INFO L78 Accepts]: Start accepts. Automaton has 36 states and 122 transitions. Word has length 9 [2019-01-18 14:26:49,797 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:26:49,797 INFO L480 AbstractCegarLoop]: Abstraction has 36 states and 122 transitions. [2019-01-18 14:26:49,797 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-18 14:26:49,797 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 122 transitions. [2019-01-18 14:26:49,797 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 10 [2019-01-18 14:26:49,797 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:26:49,797 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1, 1, 1] [2019-01-18 14:26:49,798 INFO L423 AbstractCegarLoop]: === Iteration 55 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:26:49,798 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:26:49,798 INFO L82 PathProgramCache]: Analyzing trace with hash -1875225892, now seen corresponding path program 2 times [2019-01-18 14:26:49,798 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:26:49,798 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:26:49,798 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:26:49,798 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:26:49,798 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:26:49,800 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:26:50,349 INFO L273 TraceCheckUtils]: 0: Hoare triple {37100#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {37102#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:26:50,350 INFO L273 TraceCheckUtils]: 1: Hoare triple {37102#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37102#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:26:50,351 INFO L273 TraceCheckUtils]: 2: Hoare triple {37102#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {37103#(and (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:26:50,352 INFO L273 TraceCheckUtils]: 3: Hoare triple {37103#(and (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {37104#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-18 14:26:50,353 INFO L273 TraceCheckUtils]: 4: Hoare triple {37104#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37104#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-18 14:26:50,354 INFO L273 TraceCheckUtils]: 5: Hoare triple {37104#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} assume #memory_int[main_p1] >= 0; {37105#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-18 14:26:50,355 INFO L273 TraceCheckUtils]: 6: Hoare triple {37105#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p2] <= 0; {37105#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-18 14:26:50,355 INFO L273 TraceCheckUtils]: 7: Hoare triple {37105#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p3] >= 0; {37105#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-18 14:26:50,356 INFO L273 TraceCheckUtils]: 8: Hoare triple {37105#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume !(#memory_int[main_p4] <= 0); {37101#false} is VALID [2019-01-18 14:26:50,356 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 8 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2019-01-18 14:26:50,357 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:26:50,357 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:26:50,357 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-18 14:26:50,357 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-18 14:26:50,357 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:26:50,357 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 53 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 53 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-18 14:26:50,367 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-18 14:26:50,367 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-18 14:26:50,373 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-18 14:26:50,373 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-18 14:26:50,376 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:26:50,376 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:26:50,420 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:26:50,430 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:50,431 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:26:50,445 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:50,446 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:50,447 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:26:50,468 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:50,469 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:50,470 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:50,471 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:26:50,479 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:26:50,499 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:26:50,511 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:26:50,522 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:26:50,539 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-18 14:26:50,540 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-18 14:26:50,547 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:26:50,547 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_327|, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_327| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-18 14:26:50,547 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:26:50,623 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:50,624 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:50,625 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:50,626 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:50,627 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:50,629 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:50,630 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:50,630 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-18 14:26:50,638 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:26:50,669 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-18 14:26:50,669 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-18 14:26:50,684 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:26:50,685 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_328|, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_328| ULTIMATE.start_main_p1))) (and (= (select |v_#memory_int_328| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_328| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= .cse0 0) (= (select |v_#memory_int_328| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_328| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:26:50,685 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:26:50,766 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:50,767 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:50,768 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:50,770 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:50,771 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:50,772 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:50,774 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:50,775 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:50,776 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:50,777 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-18 14:26:50,784 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:26:50,822 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-18 14:26:50,822 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-18 14:26:51,381 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:26:51,382 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_329|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_329| ULTIMATE.start_main_p2))) (and (= 0 .cse0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_329| ULTIMATE.start_main_p1) 1) (= (select |v_#memory_int_329| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_329| ULTIMATE.start_main_p3) 0) (= |#memory_int| (store |v_#memory_int_329| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:26:51,382 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:26:51,470 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:51,472 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:51,473 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:51,474 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:51,475 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:51,476 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:51,477 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:51,479 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:51,480 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:51,481 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:51,482 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:51,482 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:26:51,483 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 78 [2019-01-18 14:26:51,492 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:26:51,535 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-18 14:26:51,536 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-18 14:26:51,545 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:26:51,545 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_330|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_330| ULTIMATE.start_main_p4))) (and (= .cse0 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_330| ULTIMATE.start_main_p2) 1) 0) (= (select |v_#memory_int_330| ULTIMATE.start_main_p3) 0) (= (store |v_#memory_int_330| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_330| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:26:51,545 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-18 14:26:51,621 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:51,622 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:51,623 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:51,624 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:51,625 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:51,627 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:51,628 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:51,629 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:51,630 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:51,631 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:51,632 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:51,633 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:26:51,634 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 12 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 81 [2019-01-18 14:26:51,642 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:26:51,702 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-18 14:26:51,702 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-01-18 14:26:54,005 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:26:54,005 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_331|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_331| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_331| ULTIMATE.start_main_p4) 1)) (= .cse0 1) (= (select |v_#memory_int_331| ULTIMATE.start_main_p3) 0) (= 0 (+ (select |v_#memory_int_331| ULTIMATE.start_main_p2) 1)) (= (store |v_#memory_int_331| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:26:54,005 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-18 14:26:54,192 INFO L273 TraceCheckUtils]: 0: Hoare triple {37100#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {37109#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:26:54,194 INFO L273 TraceCheckUtils]: 1: Hoare triple {37109#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37113#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:26:54,197 INFO L273 TraceCheckUtils]: 2: Hoare triple {37113#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {37117#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:26:54,199 INFO L273 TraceCheckUtils]: 3: Hoare triple {37117#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {37121#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-18 14:26:54,202 INFO L273 TraceCheckUtils]: 4: Hoare triple {37121#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37125#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-18 14:26:54,203 INFO L273 TraceCheckUtils]: 5: Hoare triple {37125#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p1] >= 0; {37125#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-18 14:26:54,203 INFO L273 TraceCheckUtils]: 6: Hoare triple {37125#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p2] <= 0; {37125#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-18 14:26:54,204 INFO L273 TraceCheckUtils]: 7: Hoare triple {37125#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p3] >= 0; {37125#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-18 14:26:54,205 INFO L273 TraceCheckUtils]: 8: Hoare triple {37125#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p4] <= 0); {37101#false} is VALID [2019-01-18 14:26:54,206 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:26:54,206 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:26:54,330 INFO L273 TraceCheckUtils]: 8: Hoare triple {37138#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {37101#false} is VALID [2019-01-18 14:26:54,331 INFO L273 TraceCheckUtils]: 7: Hoare triple {37138#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {37138#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:54,331 INFO L273 TraceCheckUtils]: 6: Hoare triple {37138#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {37138#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:54,332 INFO L273 TraceCheckUtils]: 5: Hoare triple {37138#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {37138#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:54,333 INFO L273 TraceCheckUtils]: 4: Hoare triple {37151#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37138#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:54,334 INFO L273 TraceCheckUtils]: 3: Hoare triple {37155#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {37151#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:54,336 INFO L273 TraceCheckUtils]: 2: Hoare triple {37159#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {37155#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:54,338 INFO L273 TraceCheckUtils]: 1: Hoare triple {37163#(<= (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37159#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:54,340 INFO L273 TraceCheckUtils]: 0: Hoare triple {37100#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {37163#(<= (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:26:54,340 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 6 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:26:54,360 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:26:54,360 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 5, 5] total 14 [2019-01-18 14:26:54,360 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:26:54,360 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 9 [2019-01-18 14:26:54,360 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:26:54,360 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states. [2019-01-18 14:26:54,388 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 18 edges. 18 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:26:54,388 INFO L459 AbstractCegarLoop]: Interpolant automaton has 11 states [2019-01-18 14:26:54,388 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2019-01-18 14:26:54,388 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=92, Invalid=148, Unknown=0, NotChecked=0, Total=240 [2019-01-18 14:26:54,389 INFO L87 Difference]: Start difference. First operand 36 states and 122 transitions. Second operand 11 states. [2019-01-18 14:27:00,119 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:27:00,119 INFO L93 Difference]: Finished difference Result 52 states and 168 transitions. [2019-01-18 14:27:00,119 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-18 14:27:00,119 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 9 [2019-01-18 14:27:00,120 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:27:00,120 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2019-01-18 14:27:00,120 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 43 transitions. [2019-01-18 14:27:00,120 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2019-01-18 14:27:00,121 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 43 transitions. [2019-01-18 14:27:00,121 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 43 transitions. [2019-01-18 14:27:00,185 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 43 edges. 43 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:27:00,186 INFO L225 Difference]: With dead ends: 52 [2019-01-18 14:27:00,186 INFO L226 Difference]: Without dead ends: 45 [2019-01-18 14:27:00,186 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 25 GetRequests, 7 SyntacticMatches, 2 SemanticMatches, 16 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 88 ImplicationChecksByTransitivity, 0.8s TimeCoverageRelationStatistics Valid=112, Invalid=194, Unknown=0, NotChecked=0, Total=306 [2019-01-18 14:27:00,187 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 45 states. [2019-01-18 14:27:04,748 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 45 to 40. [2019-01-18 14:27:04,749 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:27:04,749 INFO L82 GeneralOperation]: Start isEquivalent. First operand 45 states. Second operand 40 states. [2019-01-18 14:27:04,749 INFO L74 IsIncluded]: Start isIncluded. First operand 45 states. Second operand 40 states. [2019-01-18 14:27:04,749 INFO L87 Difference]: Start difference. First operand 45 states. Second operand 40 states. [2019-01-18 14:27:04,750 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:27:04,750 INFO L93 Difference]: Finished difference Result 45 states and 158 transitions. [2019-01-18 14:27:04,750 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 158 transitions. [2019-01-18 14:27:04,751 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:27:04,751 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:27:04,751 INFO L74 IsIncluded]: Start isIncluded. First operand 40 states. Second operand 45 states. [2019-01-18 14:27:04,751 INFO L87 Difference]: Start difference. First operand 40 states. Second operand 45 states. [2019-01-18 14:27:04,752 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:27:04,752 INFO L93 Difference]: Finished difference Result 45 states and 158 transitions. [2019-01-18 14:27:04,752 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 158 transitions. [2019-01-18 14:27:04,752 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:27:04,752 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:27:04,752 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:27:04,753 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:27:04,753 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 40 states. [2019-01-18 14:27:04,753 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 40 states to 40 states and 138 transitions. [2019-01-18 14:27:04,753 INFO L78 Accepts]: Start accepts. Automaton has 40 states and 138 transitions. Word has length 9 [2019-01-18 14:27:04,753 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:27:04,753 INFO L480 AbstractCegarLoop]: Abstraction has 40 states and 138 transitions. [2019-01-18 14:27:04,753 INFO L481 AbstractCegarLoop]: Interpolant automaton has 11 states. [2019-01-18 14:27:04,754 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 138 transitions. [2019-01-18 14:27:04,754 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 10 [2019-01-18 14:27:04,754 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:27:04,754 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1] [2019-01-18 14:27:04,754 INFO L423 AbstractCegarLoop]: === Iteration 56 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:27:04,754 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:27:04,754 INFO L82 PathProgramCache]: Analyzing trace with hash -1867837724, now seen corresponding path program 1 times [2019-01-18 14:27:04,754 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:27:04,755 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:27:04,755 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-18 14:27:04,755 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:27:04,755 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:27:04,758 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:27:05,173 INFO L273 TraceCheckUtils]: 0: Hoare triple {37427#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {37429#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:27:05,174 INFO L273 TraceCheckUtils]: 1: Hoare triple {37429#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37429#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:27:05,175 INFO L273 TraceCheckUtils]: 2: Hoare triple {37429#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {37430#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:27:05,176 INFO L273 TraceCheckUtils]: 3: Hoare triple {37430#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {37431#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-18 14:27:05,176 INFO L273 TraceCheckUtils]: 4: Hoare triple {37431#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {37432#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:27:05,177 INFO L273 TraceCheckUtils]: 5: Hoare triple {37432#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p1] >= 0; {37432#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:27:05,177 INFO L273 TraceCheckUtils]: 6: Hoare triple {37432#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p2] <= 0; {37432#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:27:05,177 INFO L273 TraceCheckUtils]: 7: Hoare triple {37432#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p3] >= 0; {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:27:05,178 INFO L273 TraceCheckUtils]: 8: Hoare triple {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {37428#false} is VALID [2019-01-18 14:27:05,178 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 9 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-18 14:27:05,179 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:27:05,179 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:27:05,179 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 10 with the following transitions: [2019-01-18 14:27:05,179 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [16], [20], [22], [24], [25] [2019-01-18 14:27:05,180 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:27:05,180 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:27:05,191 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:27:05,192 INFO L272 AbstractInterpreter]: Visited 9 different actions 9 times. Never merged. Never widened. Performed 62 root evaluator evaluations with a maximum evaluation depth of 3. Performed 62 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 4 fixpoints after 4 different actions. Largest state had 0 variables. [2019-01-18 14:27:05,192 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:27:05,192 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:27:05,193 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:27:05,193 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 54 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 54 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-18 14:27:05,203 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:27:05,203 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:27:05,207 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:27:05,213 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:27:05,213 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:27:05,243 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:27:05,254 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:05,255 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:27:05,271 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:05,273 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:05,274 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:27:05,452 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:05,483 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:05,504 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:05,505 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:27:05,534 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:27:05,571 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:27:05,583 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:27:05,600 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:27:05,616 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:27:05,616 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-18 14:27:05,622 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:27:05,622 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_336|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_336| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:27:05,623 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:27:05,696 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:05,698 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:05,699 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:05,700 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:05,701 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:05,703 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:05,704 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:05,704 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-18 14:27:05,712 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:27:05,745 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-18 14:27:05,745 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-18 14:27:05,786 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:27:05,787 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_337|, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_337| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_337| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_337| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_337| ULTIMATE.start_main_p2) 0) (= .cse0 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |v_#memory_int_337| ULTIMATE.start_main_p4) 0))) [2019-01-18 14:27:05,787 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:27:05,862 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:05,864 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:05,865 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:05,866 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:05,868 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:05,869 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:05,870 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:05,871 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:05,872 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:05,873 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-18 14:27:05,881 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:27:05,916 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-18 14:27:05,916 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-18 14:27:05,924 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:27:05,924 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_338|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_338| ULTIMATE.start_main_p2))) (and (= (select |v_#memory_int_338| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_338| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= (select |v_#memory_int_338| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_338| ULTIMATE.start_main_p1) 1) (= .cse0 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-18 14:27:05,924 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:27:06,000 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:06,001 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:06,002 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:06,003 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:06,004 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:06,006 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:06,007 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:06,008 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:06,009 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:06,010 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:06,011 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:06,011 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:27:06,012 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 78 [2019-01-18 14:27:06,020 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:27:06,063 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-18 14:27:06,063 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-18 14:27:06,072 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:27:06,073 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_339|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_339| ULTIMATE.start_main_p4))) (and (= 1 (select |v_#memory_int_339| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_339| ULTIMATE.start_main_p2) 1) 0) (= (store |v_#memory_int_339| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_339| ULTIMATE.start_main_p3) 0) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:27:06,073 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-18 14:27:06,152 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:06,153 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:06,155 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:06,156 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:06,157 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:06,159 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:06,160 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:06,161 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:06,162 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:06,163 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:06,164 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:27:06,165 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 75 [2019-01-18 14:27:06,173 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:27:06,215 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-18 14:27:06,215 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-01-18 14:27:06,239 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:27:06,239 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_340|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_340| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= |#memory_int| (store |v_#memory_int_340| ULTIMATE.start_main_p3 (+ .cse0 1))) (= 0 (+ (select |v_#memory_int_340| ULTIMATE.start_main_p2) 1)) (= (select |v_#memory_int_340| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |v_#memory_int_340| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:27:06,239 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-18 14:27:06,466 INFO L273 TraceCheckUtils]: 0: Hoare triple {37427#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {37437#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:27:06,468 INFO L273 TraceCheckUtils]: 1: Hoare triple {37437#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37441#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:27:06,470 INFO L273 TraceCheckUtils]: 2: Hoare triple {37441#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {37445#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:27:06,472 INFO L273 TraceCheckUtils]: 3: Hoare triple {37445#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {37449#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:27:06,475 INFO L273 TraceCheckUtils]: 4: Hoare triple {37449#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {37453#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-18 14:27:06,477 INFO L273 TraceCheckUtils]: 5: Hoare triple {37453#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} assume #memory_int[main_p1] >= 0; {37453#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-18 14:27:06,477 INFO L273 TraceCheckUtils]: 6: Hoare triple {37453#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} assume #memory_int[main_p2] <= 0; {37453#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-18 14:27:06,478 INFO L273 TraceCheckUtils]: 7: Hoare triple {37453#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} assume #memory_int[main_p3] >= 0; {37453#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-18 14:27:06,479 INFO L273 TraceCheckUtils]: 8: Hoare triple {37453#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} assume !(#memory_int[main_p4] <= 0); {37428#false} is VALID [2019-01-18 14:27:06,480 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:27:06,481 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:27:06,609 INFO L273 TraceCheckUtils]: 8: Hoare triple {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {37428#false} is VALID [2019-01-18 14:27:06,610 INFO L273 TraceCheckUtils]: 7: Hoare triple {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:27:06,610 INFO L273 TraceCheckUtils]: 6: Hoare triple {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:27:06,611 INFO L273 TraceCheckUtils]: 5: Hoare triple {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:27:06,612 INFO L273 TraceCheckUtils]: 4: Hoare triple {37478#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:27:06,613 INFO L273 TraceCheckUtils]: 3: Hoare triple {37482#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {37478#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:27:06,615 INFO L273 TraceCheckUtils]: 2: Hoare triple {37486#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {37482#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:27:06,617 INFO L273 TraceCheckUtils]: 1: Hoare triple {37490#(<= (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37486#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:27:06,619 INFO L273 TraceCheckUtils]: 0: Hoare triple {37427#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {37490#(<= (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:27:06,620 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 6 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:27:06,639 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:27:06,639 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 14 [2019-01-18 14:27:06,639 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:27:06,640 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 9 [2019-01-18 14:27:06,640 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:27:06,640 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-18 14:27:06,669 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 18 edges. 18 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:27:06,669 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-18 14:27:06,669 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-18 14:27:06,669 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=95, Invalid=145, Unknown=0, NotChecked=0, Total=240 [2019-01-18 14:27:06,670 INFO L87 Difference]: Start difference. First operand 40 states and 138 transitions. Second operand 12 states. [2019-01-18 14:27:14,152 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:27:14,153 INFO L93 Difference]: Finished difference Result 66 states and 218 transitions. [2019-01-18 14:27:14,153 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-01-18 14:27:14,153 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 9 [2019-01-18 14:27:14,153 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:27:14,153 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-18 14:27:14,154 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 51 transitions. [2019-01-18 14:27:14,154 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-18 14:27:14,154 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 51 transitions. [2019-01-18 14:27:14,154 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 51 transitions. [2019-01-18 14:27:14,242 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-18 14:27:14,244 INFO L225 Difference]: With dead ends: 66 [2019-01-18 14:27:14,244 INFO L226 Difference]: Without dead ends: 56 [2019-01-18 14:27:14,244 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 27 GetRequests, 7 SyntacticMatches, 3 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 86 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=127, Invalid=215, Unknown=0, NotChecked=0, Total=342 [2019-01-18 14:27:14,244 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 56 states. [2019-01-18 14:27:19,235 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 56 to 40. [2019-01-18 14:27:19,236 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:27:19,236 INFO L82 GeneralOperation]: Start isEquivalent. First operand 56 states. Second operand 40 states. [2019-01-18 14:27:19,236 INFO L74 IsIncluded]: Start isIncluded. First operand 56 states. Second operand 40 states. [2019-01-18 14:27:19,236 INFO L87 Difference]: Start difference. First operand 56 states. Second operand 40 states. [2019-01-18 14:27:19,237 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:27:19,237 INFO L93 Difference]: Finished difference Result 56 states and 202 transitions. [2019-01-18 14:27:19,237 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 202 transitions. [2019-01-18 14:27:19,238 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:27:19,238 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:27:19,238 INFO L74 IsIncluded]: Start isIncluded. First operand 40 states. Second operand 56 states. [2019-01-18 14:27:19,238 INFO L87 Difference]: Start difference. First operand 40 states. Second operand 56 states. [2019-01-18 14:27:19,239 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:27:19,240 INFO L93 Difference]: Finished difference Result 56 states and 202 transitions. [2019-01-18 14:27:19,240 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 202 transitions. [2019-01-18 14:27:19,240 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:27:19,240 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:27:19,240 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:27:19,240 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:27:19,240 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 40 states. [2019-01-18 14:27:19,241 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 40 states to 40 states and 140 transitions. [2019-01-18 14:27:19,241 INFO L78 Accepts]: Start accepts. Automaton has 40 states and 140 transitions. Word has length 9 [2019-01-18 14:27:19,241 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:27:19,241 INFO L480 AbstractCegarLoop]: Abstraction has 40 states and 140 transitions. [2019-01-18 14:27:19,241 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-18 14:27:19,241 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 140 transitions. [2019-01-18 14:27:19,241 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 11 [2019-01-18 14:27:19,241 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:27:19,241 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1, 1, 1, 1] [2019-01-18 14:27:19,242 INFO L423 AbstractCegarLoop]: === Iteration 57 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:27:19,242 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:27:19,242 INFO L82 PathProgramCache]: Analyzing trace with hash 638911500, now seen corresponding path program 2 times [2019-01-18 14:27:19,242 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:27:19,242 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:27:19,242 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:27:19,243 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:27:19,243 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:27:19,246 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:27:19,877 INFO L273 TraceCheckUtils]: 0: Hoare triple {37803#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {37805#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:27:19,878 INFO L273 TraceCheckUtils]: 1: Hoare triple {37805#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {37806#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:27:19,879 INFO L273 TraceCheckUtils]: 2: Hoare triple {37806#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {37807#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-18 14:27:19,880 INFO L273 TraceCheckUtils]: 3: Hoare triple {37807#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37807#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-18 14:27:19,881 INFO L273 TraceCheckUtils]: 4: Hoare triple {37807#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37807#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-18 14:27:19,883 INFO L273 TraceCheckUtils]: 5: Hoare triple {37807#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {37808#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-18 14:27:19,883 INFO L273 TraceCheckUtils]: 6: Hoare triple {37808#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p1] >= 0; {37808#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-18 14:27:19,884 INFO L273 TraceCheckUtils]: 7: Hoare triple {37808#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p2] <= 0; {37808#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-18 14:27:19,884 INFO L273 TraceCheckUtils]: 8: Hoare triple {37808#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p3] >= 0; {37808#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-18 14:27:19,885 INFO L273 TraceCheckUtils]: 9: Hoare triple {37808#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume !(#memory_int[main_p4] <= 0); {37804#false} is VALID [2019-01-18 14:27:19,886 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 0 proven. 12 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2019-01-18 14:27:19,886 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:27:19,886 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:27:19,886 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-18 14:27:19,886 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-18 14:27:19,887 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:27:19,887 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 55 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 55 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-18 14:27:19,900 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-18 14:27:19,900 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-18 14:27:19,908 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 4 check-sat command(s) [2019-01-18 14:27:19,908 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-18 14:27:19,911 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:27:19,912 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:27:19,951 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-18 14:27:19,962 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:19,962 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-18 14:27:19,987 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:19,988 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:19,989 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-18 14:27:20,010 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,011 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,012 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,013 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-18 14:27:20,021 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:27:20,041 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:27:20,053 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:27:20,064 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:27:20,080 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:27:20,080 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-18 14:27:20,086 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:27:20,086 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_345|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_345| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-18 14:27:20,086 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:27:20,164 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,166 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,167 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,168 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,170 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,171 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,172 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,173 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-18 14:27:20,181 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:27:20,215 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-18 14:27:20,215 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-18 14:27:20,234 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:27:20,234 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_346|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_346| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_346| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= (select |v_#memory_int_346| ULTIMATE.start_main_p4) 0) (= 0 .cse0) (= 0 (select |v_#memory_int_346| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_346| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:27:20,234 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:27:20,310 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,312 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,313 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,314 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,315 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,316 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,317 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,318 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,319 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:27:20,320 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 58 [2019-01-18 14:27:20,328 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:27:20,365 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-18 14:27:20,365 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:42, output treesize:32 [2019-01-18 14:27:20,381 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:27:20,382 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_347|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_347| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_347| ULTIMATE.start_main_p2) 1) 0) (= (select |v_#memory_int_347| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_347| ULTIMATE.start_main_p1) 0) (= .cse0 0) (= |#memory_int| (store |v_#memory_int_347| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:27:20,382 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-18 14:27:20,460 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,462 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,463 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,464 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,466 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,467 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,468 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,469 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,470 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,471 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 61 [2019-01-18 14:27:20,480 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:27:20,514 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-18 14:27:20,515 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:44, output treesize:34 [2019-01-18 14:27:20,521 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:27:20,521 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_348|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_348| ULTIMATE.start_main_p1))) (and (= (store |v_#memory_int_348| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (+ (select |v_#memory_int_348| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= 0 (+ (select |v_#memory_int_348| ULTIMATE.start_main_p4) 1)) (= 0 (select |v_#memory_int_348| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:27:20,521 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-18 14:27:20,599 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,600 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,601 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,603 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,604 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,605 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,607 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,608 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,609 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,610 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,611 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,613 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,614 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 12 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 81 [2019-01-18 14:27:20,622 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:27:20,666 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-18 14:27:20,667 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:44, output treesize:34 [2019-01-18 14:27:20,678 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:27:20,679 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_349|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_349| ULTIMATE.start_main_p1))) (and (= 0 (+ (select |v_#memory_int_349| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_349| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 1 .cse0) (= 0 (+ (select |v_#memory_int_349| ULTIMATE.start_main_p2) 1)) (= 0 (select |v_#memory_int_349| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:27:20,679 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-18 14:27:20,760 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,761 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,762 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,763 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,765 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,766 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,767 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,768 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,769 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,770 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,771 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,772 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:20,773 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 12 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 81 [2019-01-18 14:27:20,781 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:27:20,834 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-18 14:27:20,835 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-01-18 14:27:20,850 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:27:20,850 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_350|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_350| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_350| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 (+ (select |v_#memory_int_350| ULTIMATE.start_main_p4) 1)) (= (+ (select |v_#memory_int_350| ULTIMATE.start_main_p2) 1) 0) (= .cse0 0) (= (select |v_#memory_int_350| ULTIMATE.start_main_p1) 2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-18 14:27:20,850 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-18 14:27:21,005 INFO L273 TraceCheckUtils]: 0: Hoare triple {37803#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {37812#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-18 14:27:21,006 INFO L273 TraceCheckUtils]: 1: Hoare triple {37812#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {37816#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:27:21,008 INFO L273 TraceCheckUtils]: 2: Hoare triple {37816#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {37820#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:27:21,009 INFO L273 TraceCheckUtils]: 3: Hoare triple {37820#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37824#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:27:21,010 INFO L273 TraceCheckUtils]: 4: Hoare triple {37824#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37828#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:27:21,013 INFO L273 TraceCheckUtils]: 5: Hoare triple {37828#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {37832#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-18 14:27:21,014 INFO L273 TraceCheckUtils]: 6: Hoare triple {37832#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p1] >= 0; {37832#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-18 14:27:21,015 INFO L273 TraceCheckUtils]: 7: Hoare triple {37832#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p2] <= 0; {37832#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-18 14:27:21,015 INFO L273 TraceCheckUtils]: 8: Hoare triple {37832#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p3] >= 0; {37832#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-18 14:27:21,016 INFO L273 TraceCheckUtils]: 9: Hoare triple {37832#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p4] <= 0); {37804#false} is VALID [2019-01-18 14:27:21,018 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 0 proven. 15 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:27:21,018 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:27:21,199 INFO L273 TraceCheckUtils]: 9: Hoare triple {37845#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {37804#false} is VALID [2019-01-18 14:27:21,200 INFO L273 TraceCheckUtils]: 8: Hoare triple {37845#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {37845#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:27:21,200 INFO L273 TraceCheckUtils]: 7: Hoare triple {37845#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {37845#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:27:21,201 INFO L273 TraceCheckUtils]: 6: Hoare triple {37845#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {37845#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:27:21,202 INFO L273 TraceCheckUtils]: 5: Hoare triple {37858#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {37845#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:27:21,203 INFO L273 TraceCheckUtils]: 4: Hoare triple {37862#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37858#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:27:21,205 INFO L273 TraceCheckUtils]: 3: Hoare triple {37866#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37862#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:27:21,207 INFO L273 TraceCheckUtils]: 2: Hoare triple {37870#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {37866#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:27:21,209 INFO L273 TraceCheckUtils]: 1: Hoare triple {37874#(<= (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {37870#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:27:21,211 INFO L273 TraceCheckUtils]: 0: Hoare triple {37803#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {37874#(<= (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-18 14:27:21,212 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 5 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-18 14:27:21,230 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:27:21,230 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 6, 6] total 16 [2019-01-18 14:27:21,230 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:27:21,230 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 10 [2019-01-18 14:27:21,230 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:27:21,230 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-18 14:27:21,261 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 19 edges. 19 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:27:21,261 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-18 14:27:21,262 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-18 14:27:21,262 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=106, Invalid=200, Unknown=0, NotChecked=0, Total=306 [2019-01-18 14:27:21,262 INFO L87 Difference]: Start difference. First operand 40 states and 140 transitions. Second operand 12 states. [2019-01-18 14:27:28,046 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:27:28,046 INFO L93 Difference]: Finished difference Result 48 states and 164 transitions. [2019-01-18 14:27:28,046 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-01-18 14:27:28,046 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 10 [2019-01-18 14:27:28,047 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:27:28,047 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-18 14:27:28,047 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 40 transitions. [2019-01-18 14:27:28,047 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-18 14:27:28,047 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 40 transitions. [2019-01-18 14:27:28,047 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 40 transitions. [2019-01-18 14:27:28,119 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 40 edges. 40 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:27:28,119 INFO L225 Difference]: With dead ends: 48 [2019-01-18 14:27:28,119 INFO L226 Difference]: Without dead ends: 0 [2019-01-18 14:27:28,120 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 30 GetRequests, 8 SyntacticMatches, 3 SemanticMatches, 19 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 125 ImplicationChecksByTransitivity, 0.8s TimeCoverageRelationStatistics Valid=139, Invalid=281, Unknown=0, NotChecked=0, Total=420 [2019-01-18 14:27:28,120 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 0 states. [2019-01-18 14:27:28,120 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 0 to 0. [2019-01-18 14:27:28,121 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:27:28,121 INFO L82 GeneralOperation]: Start isEquivalent. First operand 0 states. Second operand 0 states. [2019-01-18 14:27:28,121 INFO L74 IsIncluded]: Start isIncluded. First operand 0 states. Second operand 0 states. [2019-01-18 14:27:28,121 INFO L87 Difference]: Start difference. First operand 0 states. Second operand 0 states. [2019-01-18 14:27:28,121 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:27:28,122 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2019-01-18 14:27:28,122 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2019-01-18 14:27:28,122 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:27:28,122 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:27:28,122 INFO L74 IsIncluded]: Start isIncluded. First operand 0 states. Second operand 0 states. [2019-01-18 14:27:28,122 INFO L87 Difference]: Start difference. First operand 0 states. Second operand 0 states. [2019-01-18 14:27:28,122 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:27:28,123 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2019-01-18 14:27:28,123 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2019-01-18 14:27:28,123 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:27:28,123 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:27:28,123 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:27:28,123 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:27:28,123 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 0 states. [2019-01-18 14:27:28,123 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 0 states to 0 states and 0 transitions. [2019-01-18 14:27:28,123 INFO L78 Accepts]: Start accepts. Automaton has 0 states and 0 transitions. Word has length 10 [2019-01-18 14:27:28,123 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:27:28,123 INFO L480 AbstractCegarLoop]: Abstraction has 0 states and 0 transitions. [2019-01-18 14:27:28,123 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-18 14:27:28,124 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2019-01-18 14:27:28,124 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:27:28,127 INFO L343 DoubleDeckerVisitor]: Before removal of dead ends 0 states and 0 transitions. [2019-01-18 14:27:28,159 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:28,181 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:28,208 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:28,503 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:28,505 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:28,520 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:28,566 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:28,714 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:28,746 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:28,748 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:28,757 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:28,758 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:28,852 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:28,859 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:28,863 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:28,878 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:28,882 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:28,915 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:28,919 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:28,920 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:29,073 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:29,073 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:29,093 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:29,154 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:29,225 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:30,162 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:30,180 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:30,304 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:30,392 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:30,393 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:30,409 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:30,428 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:30,429 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:30,476 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:30,487 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:30,596 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:30,610 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:31,010 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:31,057 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:31,111 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:31,164 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:31,194 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:31,406 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:31,754 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:31,810 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:32,093 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:32,094 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:32,094 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:32,176 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:32,318 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:32,644 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:32,647 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:32,751 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:32,808 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:32,836 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:32,871 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:32,917 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:32,918 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:32,919 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:32,926 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:32,931 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:32,963 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:33,413 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:33,455 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:33,477 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:33,512 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:33,513 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:34,108 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:34,272 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:34,339 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:34,767 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:35,009 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:35,010 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:35,192 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:35,666 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:35,668 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:35,668 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:36,243 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:36,295 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:36,299 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:36,827 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:36,830 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:36,830 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:36,840 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:38,116 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:38,119 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:38,222 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:38,981 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-18 14:27:39,030 WARN L181 SmtUtils]: Spent 10.90 s on a formula simplification. DAG size of input: 1855 DAG size of output: 1101 [2019-01-18 14:27:53,675 WARN L181 SmtUtils]: Spent 14.46 s on a formula simplification. DAG size of input: 1000 DAG size of output: 85 [2019-01-18 14:27:53,691 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startEXIT(lines 7 9) no Hoare annotation was computed. [2019-01-18 14:27:53,691 INFO L448 ceAbstractionStarter]: For program point L46(line 46) no Hoare annotation was computed. [2019-01-18 14:27:53,691 INFO L448 ceAbstractionStarter]: For program point L44(line 44) no Hoare annotation was computed. [2019-01-18 14:27:53,691 INFO L444 ceAbstractionStarter]: At program point L36-1(lines 31 41) the Hoare annotation is: (let ((.cse18 (select |#memory_int| ULTIMATE.start_main_p4)) (.cse8 (select |#memory_int| ULTIMATE.start_main_p2))) (let ((.cse10 (store |#memory_int| ULTIMATE.start_main_p2 (+ .cse8 (- 1)))) (.cse6 (select |#memory_int| ULTIMATE.start_main_p1)) (.cse17 (store |#memory_int| ULTIMATE.start_main_p4 (+ .cse18 (- 1)))) (.cse19 (select |#memory_int| ULTIMATE.start_main_p3))) (let ((.cse7 (= .cse18 0)) (.cse5 (<= 0 .cse19)) (.cse2 (select .cse17 ULTIMATE.start_main_p3)) (.cse4 (store |#memory_int| ULTIMATE.start_main_p1 (+ .cse6 1))) (.cse0 (<= (+ ULTIMATE.start_main_p1 3) ULTIMATE.start_main_p4)) (.cse3 (= 0 (select .cse10 ULTIMATE.start_main_p1))) (.cse1 (= 0 (select .cse17 ULTIMATE.start_main_p2))) (.cse13 (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3))) (.cse9 (store |#memory_int| ULTIMATE.start_main_p3 (+ .cse19 1)))) (or (and (and (and .cse0 .cse1) (<= 1 .cse2) .cse3) (<= (+ (select .cse4 ULTIMATE.start_main_p4) 1) 0)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) .cse5 (<= 0 .cse6) .cse7 (<= .cse8 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (let ((.cse11 (select .cse4 ULTIMATE.start_main_p2))) (let ((.cse14 (<= .cse18 0)) (.cse15 (<= (+ .cse11 1) 0)) (.cse12 (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (or (and (= 0 (select .cse9 ULTIMATE.start_main_p1)) (<= 1 (select .cse10 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 .cse11) .cse0 .cse7) (and (and .cse12 .cse13 .cse14 .cse5 .cse15 .cse3) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p3))) (and (and .cse14 (let ((.cse16 (and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select .cse17 ULTIMATE.start_main_p1)) .cse12))) (or (and .cse1 (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) .cse16) (and .cse15 .cse16)))) (<= 0 .cse2))))) (and .cse0 .cse3 .cse1 (= .cse19 0) .cse13 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= (+ (select .cse9 ULTIMATE.start_main_p4) 1) 0)))))) [2019-01-18 14:27:53,691 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startENTRY(lines 7 9) no Hoare annotation was computed. [2019-01-18 14:27:53,691 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startErr3ASSERT_VIOLATIONASSERT(line 46) no Hoare annotation was computed. [2019-01-18 14:27:53,692 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startErr1ASSERT_VIOLATIONASSERT(line 44) no Hoare annotation was computed. [2019-01-18 14:27:53,692 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startErr2ASSERT_VIOLATIONASSERT(line 45) no Hoare annotation was computed. [2019-01-18 14:27:53,692 INFO L448 ceAbstractionStarter]: For program point L14(lines 7 48) no Hoare annotation was computed. [2019-01-18 14:27:53,692 INFO L448 ceAbstractionStarter]: For program point L45(line 45) no Hoare annotation was computed. [2019-01-18 14:27:53,692 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startErr0ASSERT_VIOLATIONASSERT(line 43) no Hoare annotation was computed. [2019-01-18 14:27:53,693 WARN L170 areAnnotationChecker]: ULTIMATE.startENTRY has no Hoare annotation [2019-01-18 14:27:53,693 WARN L170 areAnnotationChecker]: ULTIMATE.startErr0ASSERT_VIOLATIONASSERT has no Hoare annotation [2019-01-18 14:27:53,693 WARN L170 areAnnotationChecker]: L44 has no Hoare annotation [2019-01-18 14:27:53,722 WARN L170 areAnnotationChecker]: L44 has no Hoare annotation [2019-01-18 14:27:53,722 WARN L170 areAnnotationChecker]: L44 has no Hoare annotation [2019-01-18 14:27:53,722 WARN L170 areAnnotationChecker]: L45 has no Hoare annotation [2019-01-18 14:27:53,722 WARN L170 areAnnotationChecker]: L45 has no Hoare annotation [2019-01-18 14:27:53,723 WARN L170 areAnnotationChecker]: L46 has no Hoare annotation [2019-01-18 14:27:53,723 WARN L170 areAnnotationChecker]: L46 has no Hoare annotation [2019-01-18 14:27:53,723 WARN L170 areAnnotationChecker]: L14 has no Hoare annotation [2019-01-18 14:27:53,723 INFO L163 areAnnotationChecker]: CFG has 4 edges. 4 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. 0 times interpolants missing. [2019-01-18 14:27:53,739 INFO L202 PluginConnector]: Adding new model speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction CFG 18.01 02:27:53 BoogieIcfgContainer [2019-01-18 14:27:53,739 INFO L132 PluginConnector]: ------------------------ END TraceAbstraction---------------------------- [2019-01-18 14:27:53,740 INFO L168 Benchmark]: Toolchain (without parser) took 506117.77 ms. Allocated memory was 138.4 MB in the beginning and 609.2 MB in the end (delta: 470.8 MB). Free memory was 106.6 MB in the beginning and 178.9 MB in the end (delta: -72.3 MB). Peak memory consumption was 398.5 MB. Max. memory is 7.1 GB. [2019-01-18 14:27:53,741 INFO L168 Benchmark]: Boogie PL CUP Parser took 0.17 ms. Allocated memory is still 138.4 MB. Free memory is still 108.1 MB. There was no memory consumed. Max. memory is 7.1 GB. [2019-01-18 14:27:53,741 INFO L168 Benchmark]: Boogie Procedure Inliner took 52.53 ms. Allocated memory is still 138.4 MB. Free memory was 106.6 MB in the beginning and 104.3 MB in the end (delta: 2.3 MB). Peak memory consumption was 2.3 MB. Max. memory is 7.1 GB. [2019-01-18 14:27:53,741 INFO L168 Benchmark]: Boogie Preprocessor took 22.63 ms. Allocated memory is still 138.4 MB. Free memory was 104.1 MB in the beginning and 103.0 MB in the end (delta: 1.0 MB). Peak memory consumption was 1.0 MB. Max. memory is 7.1 GB. [2019-01-18 14:27:53,741 INFO L168 Benchmark]: RCFGBuilder took 617.66 ms. Allocated memory is still 138.4 MB. Free memory was 103.0 MB in the beginning and 87.8 MB in the end (delta: 15.2 MB). Peak memory consumption was 15.2 MB. Max. memory is 7.1 GB. [2019-01-18 14:27:53,742 INFO L168 Benchmark]: TraceAbstraction took 505420.55 ms. Allocated memory was 138.4 MB in the beginning and 609.2 MB in the end (delta: 470.8 MB). Free memory was 87.6 MB in the beginning and 178.9 MB in the end (delta: -91.3 MB). Peak memory consumption was 379.5 MB. Max. memory is 7.1 GB. [2019-01-18 14:27:53,743 INFO L336 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - GenericResult: Assertions are enabled Assertions are enabled - StatisticsResult: Toolchain Benchmarks Benchmark results are: * Boogie PL CUP Parser took 0.17 ms. Allocated memory is still 138.4 MB. Free memory is still 108.1 MB. There was no memory consumed. Max. memory is 7.1 GB. * Boogie Procedure Inliner took 52.53 ms. Allocated memory is still 138.4 MB. Free memory was 106.6 MB in the beginning and 104.3 MB in the end (delta: 2.3 MB). Peak memory consumption was 2.3 MB. Max. memory is 7.1 GB. * Boogie Preprocessor took 22.63 ms. Allocated memory is still 138.4 MB. Free memory was 104.1 MB in the beginning and 103.0 MB in the end (delta: 1.0 MB). Peak memory consumption was 1.0 MB. Max. memory is 7.1 GB. * RCFGBuilder took 617.66 ms. Allocated memory is still 138.4 MB. Free memory was 103.0 MB in the beginning and 87.8 MB in the end (delta: 15.2 MB). Peak memory consumption was 15.2 MB. Max. memory is 7.1 GB. * TraceAbstraction took 505420.55 ms. Allocated memory was 138.4 MB in the beginning and 609.2 MB in the end (delta: 470.8 MB). Free memory was 87.6 MB in the beginning and 178.9 MB in the end (delta: -91.3 MB). Peak memory consumption was 379.5 MB. Max. memory is 7.1 GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - PositiveResult [Line: 43]: assertion always holds For all program executions holds that assertion always holds at this location - PositiveResult [Line: 44]: assertion always holds For all program executions holds that assertion always holds at this location - PositiveResult [Line: 46]: assertion always holds For all program executions holds that assertion always holds at this location - PositiveResult [Line: 45]: assertion always holds For all program executions holds that assertion always holds at this location - AllSpecificationsHoldResult: All specifications hold 4 specifications checked. All of them hold - InvariantResult [Line: 31]: Loop Invariant Derived loop invariant: ((((((p1 + 3 <= p4 && 0 == #memory_int[p4 := #memory_int[p4] + -1][p2]) && 1 <= #memory_int[p4 := #memory_int[p4] + -1][p3]) && 0 == #memory_int[p2 := #memory_int[p2] + -1][p1]) && #memory_int[p1 := #memory_int[p1] + 1][p4] + 1 <= 0) || ((((((p3 < p4 && p2 < p3) && 0 <= #memory_int[p3]) && 0 <= #memory_int[p1]) && #memory_int[p4] == 0) && #memory_int[p2] <= 0) && p1 < p2)) || ((((((0 == #memory_int[p3 := #memory_int[p3] + 1][p1] && 1 <= #memory_int[p2 := #memory_int[p2] + -1][p3]) && !(p2 == p4)) && 0 == #memory_int[p1 := #memory_int[p1] + 1][p2]) && p1 + 3 <= p4) && #memory_int[p4] == 0) || ((((((!(p1 == p4) && !(p1 == p3)) && #memory_int[p4] <= 0) && 0 <= #memory_int[p3]) && #memory_int[p1 := #memory_int[p1] + 1][p2] + 1 <= 0) && 0 == #memory_int[p2 := #memory_int[p2] + -1][p1]) && !(p4 == p3))) || ((#memory_int[p4] <= 0 && (((0 == #memory_int[p4 := #memory_int[p4] + -1][p2] && !(p2 == p3)) && (!(p1 == p2) && 1 <= #memory_int[p4 := #memory_int[p4] + -1][p1]) && !(p1 == p4)) || (#memory_int[p1 := #memory_int[p1] + 1][p2] + 1 <= 0 && (!(p1 == p2) && 1 <= #memory_int[p4 := #memory_int[p4] + -1][p1]) && !(p1 == p4)))) && 0 <= #memory_int[p4 := #memory_int[p4] + -1][p3])) || ((((((p1 + 3 <= p4 && 0 == #memory_int[p2 := #memory_int[p2] + -1][p1]) && 0 == #memory_int[p4 := #memory_int[p4] + -1][p2]) && #memory_int[p3] == 0) && !(p1 == p3)) && !(p3 == p2)) && #memory_int[p3 := #memory_int[p3] + 1][p4] + 1 <= 0) - StatisticsResult: Ultimate Automizer benchmark data CFG has 1 procedures, 11 locations, 4 error locations. SAFE Result, 505.3s OverallTime, 57 OverallIterations, 2 TraceHistogramMax, 211.7s AutomataDifference, 0.0s DeadEndRemovalTime, 25.5s HoareAnnotationTime, HoareTripleCheckerStatistics: 210 SDtfs, 887 SDslu, 1 SDs, 0 SdLazy, 8756 SolverSat, 645 SolverUnsat, 0 SolverUnknown, 0 SolverNotchecked, 16.4s Time, PredicateUnifierStatistics: 0 DeclaredPredicates, 875 GetRequests, 174 SyntacticMatches, 38 SemanticMatches, 663 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 2487 ImplicationChecksByTransitivity, 24.9s Time, 0.0s BasicInterpolantAutomatonTime, BiggestAbstraction: size=367occurred in iteration=46, traceCheckStatistics: No data available, InterpolantConsolidationStatistics: No data available, PathInvariantsStatistics: No data available, 0/0 InterpolantCoveringCapability, TotalInterpolationStatistics: No data available, 0.9s AbstIntTime, 43 AbstIntIterations, 0 AbstIntStrong, NaN AbsIntWeakeningRatio, NaN AbsIntAvgWeakeningVarsNumRemoved, NaN AbsIntAvgWeakenedConjuncts, 0.0s DumpTime, AutomataMinimizationStatistics: 133.9s AutomataMinimizationTime, 57 MinimizatonAttempts, 1522 StatesRemovedByMinimization, 56 NontrivialMinimizations, HoareAnnotationStatistics: 0.0s HoareAnnotationTime, 1 LocationsWithAnnotation, 1 PreInvPairs, 64 NumberOfFragments, 342 HoareAnnotationTreeSize, 1 FomulaSimplifications, 181006621 FormulaSimplificationTreeSizeReduction, 10.9s HoareSimplificationTime, 1 FomulaSimplificationsInter, 10044512 FormulaSimplificationTreeSizeReductionInter, 14.4s HoareSimplificationTimeInter, RefinementEngineStatistics: TraceCheckStatistics: 0.0s SsaConstructionTime, 0.5s SatisfiabilityAnalysisTime, 129.3s InterpolantComputationTime, 648 NumberOfCodeBlocks, 648 NumberOfCodeBlocksAsserted, 129 NumberOfCheckSat, 802 ConstructedInterpolants, 235 QuantifiedInterpolants, 90984 SizeOfPredicates, 162 NumberOfNonLiveVariables, 1237 ConjunctsInSsa, 390 ConjunctsInUnsatCore, 165 InterpolantComputations, 7 PerfectInterpolantSequences, 158/841 InterpolantCoveringCapability, InvariantSynthesisStatistics: No data available, InterpolantConsolidationStatistics: No data available, ReuseStatistics: No data available RESULT: Ultimate proved your program to be correct! Received shutdown request...