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-fa1c628-m [2019-01-31 14:40:34,888 INFO L170 SettingsManager]: Resetting all preferences to default values... [2019-01-31 14:40:34,890 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2019-01-31 14:40:34,901 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2019-01-31 14:40:34,901 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2019-01-31 14:40:34,902 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2019-01-31 14:40:34,904 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2019-01-31 14:40:34,905 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2019-01-31 14:40:34,907 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2019-01-31 14:40:34,908 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2019-01-31 14:40:34,909 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2019-01-31 14:40:34,909 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2019-01-31 14:40:34,910 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2019-01-31 14:40:34,911 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2019-01-31 14:40:34,912 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2019-01-31 14:40:34,913 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2019-01-31 14:40:34,914 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2019-01-31 14:40:34,916 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2019-01-31 14:40:34,918 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2019-01-31 14:40:34,919 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2019-01-31 14:40:34,921 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2019-01-31 14:40:34,922 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2019-01-31 14:40:34,924 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2019-01-31 14:40:34,925 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2019-01-31 14:40:34,925 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2019-01-31 14:40:34,926 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2019-01-31 14:40:34,926 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2019-01-31 14:40:34,927 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2019-01-31 14:40:34,928 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2019-01-31 14:40:34,929 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2019-01-31 14:40:34,930 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2019-01-31 14:40:34,930 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2019-01-31 14:40:34,931 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2019-01-31 14:40:34,931 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2019-01-31 14:40:34,932 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2019-01-31 14:40:34,933 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2019-01-31 14:40:34,933 INFO L98 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/ai/array-bench/reach_32bit_compound_exp_cong.epf [2019-01-31 14:40:34,946 INFO L110 SettingsManager]: Loading preferences was successful [2019-01-31 14:40:34,946 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2019-01-31 14:40:34,947 INFO L131 SettingsManager]: Preferences of Boogie Preprocessor differ from their defaults: [2019-01-31 14:40:34,947 INFO L133 SettingsManager]: * Show backtranslation warnings=false [2019-01-31 14:40:34,947 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2019-01-31 14:40:34,947 INFO L133 SettingsManager]: * User list type=DISABLED [2019-01-31 14:40:34,948 INFO L133 SettingsManager]: * Inline calls to unimplemented procedures=true [2019-01-31 14:40:34,948 INFO L131 SettingsManager]: Preferences of Abstract Interpretation differ from their defaults: [2019-01-31 14:40:34,948 INFO L133 SettingsManager]: * Explicit value domain=true [2019-01-31 14:40:34,948 INFO L133 SettingsManager]: * Abstract domain for RCFG-of-the-future=PoormanAbstractDomain [2019-01-31 14:40:34,948 INFO L133 SettingsManager]: * Octagon Domain=false [2019-01-31 14:40:34,949 INFO L133 SettingsManager]: * Abstract domain=CompoundDomain [2019-01-31 14:40:34,949 INFO L133 SettingsManager]: * Check feasibility of abstract posts with an SMT solver=true [2019-01-31 14:40:34,949 INFO L133 SettingsManager]: * Interval Domain=false [2019-01-31 14:40:34,950 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2019-01-31 14:40:34,950 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2019-01-31 14:40:34,950 INFO L133 SettingsManager]: * Use SBE=true [2019-01-31 14:40:34,950 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2019-01-31 14:40:34,950 INFO L133 SettingsManager]: * sizeof long=4 [2019-01-31 14:40:34,951 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2019-01-31 14:40:34,951 INFO L133 SettingsManager]: * sizeof POINTER=4 [2019-01-31 14:40:34,951 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2019-01-31 14:40:34,951 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2019-01-31 14:40:34,951 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2019-01-31 14:40:34,952 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2019-01-31 14:40:34,952 INFO L133 SettingsManager]: * sizeof long double=12 [2019-01-31 14:40:34,952 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2019-01-31 14:40:34,952 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2019-01-31 14:40:34,952 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2019-01-31 14:40:34,953 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2019-01-31 14:40:34,953 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2019-01-31 14:40:34,953 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:8092 -smt2 -in -t:10000 [2019-01-31 14:40:34,953 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2019-01-31 14:40:34,953 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2019-01-31 14:40:34,954 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2019-01-31 14:40:34,954 INFO L133 SettingsManager]: * Trace refinement strategy=TAIPAN [2019-01-31 14:40:34,954 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2019-01-31 14:40:34,954 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:8092 -smt2 -in [2019-01-31 14:40:34,954 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2019-01-31 14:40:34,955 INFO L133 SettingsManager]: * Abstract interpretation Mode=USE_PREDICATES [2019-01-31 14:40:34,983 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2019-01-31 14:40:34,998 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2019-01-31 14:40:35,001 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2019-01-31 14:40:35,003 INFO L271 PluginConnector]: Initializing Boogie PL CUP Parser... [2019-01-31 14:40:35,003 INFO L276 PluginConnector]: Boogie PL CUP Parser initialized [2019-01-31 14:40:35,004 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-31 14:40:35,004 INFO L111 BoogieParser]: Parsing: '/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/programs/heapseparator/speedup-poc-dd-4-limited.bpl' [2019-01-31 14:40:35,052 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2019-01-31 14:40:35,054 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2019-01-31 14:40:35,055 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2019-01-31 14:40:35,055 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2019-01-31 14:40:35,055 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2019-01-31 14:40:35,073 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 31.01 02:40:35" (1/1) ... [2019-01-31 14:40:35,086 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 31.01 02:40:35" (1/1) ... [2019-01-31 14:40:35,113 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2019-01-31 14:40:35,114 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2019-01-31 14:40:35,114 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2019-01-31 14:40:35,114 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2019-01-31 14:40:35,126 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 31.01 02:40:35" (1/1) ... [2019-01-31 14:40:35,126 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 31.01 02:40:35" (1/1) ... [2019-01-31 14:40:35,127 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 31.01 02:40:35" (1/1) ... [2019-01-31 14:40:35,128 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 31.01 02:40:35" (1/1) ... [2019-01-31 14:40:35,131 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 31.01 02:40:35" (1/1) ... [2019-01-31 14:40:35,135 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 31.01 02:40:35" (1/1) ... [2019-01-31 14:40:35,136 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 31.01 02:40:35" (1/1) ... [2019-01-31 14:40:35,137 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2019-01-31 14:40:35,138 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2019-01-31 14:40:35,138 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2019-01-31 14:40:35,138 INFO L276 PluginConnector]: RCFGBuilder initialized [2019-01-31 14:40:35,139 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 31.01 02:40:35" (1/1) ... No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:8092 -smt2 -in -t:10000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:8092 -smt2 -in -t:10000 [2019-01-31 14:40:35,205 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2019-01-31 14:40:35,206 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2019-01-31 14:40:35,799 INFO L281 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2019-01-31 14:40:35,800 INFO L286 CfgBuilder]: Removed 11 assue(true) statements. [2019-01-31 14:40:35,801 INFO L202 PluginConnector]: Adding new model speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 31.01 02:40:35 BoogieIcfgContainer [2019-01-31 14:40:35,801 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2019-01-31 14:40:35,802 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2019-01-31 14:40:35,802 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2019-01-31 14:40:35,805 INFO L276 PluginConnector]: TraceAbstraction initialized [2019-01-31 14:40:35,806 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 31.01 02:40:35" (1/2) ... [2019-01-31 14:40:35,807 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@4b095c1b and model type speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 31.01 02:40:35, skipping insertion in model container [2019-01-31 14:40:35,807 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 31.01 02:40:35" (2/2) ... [2019-01-31 14:40:35,810 INFO L112 eAbstractionObserver]: Analyzing ICFG speedup-poc-dd-4-limited.bpl [2019-01-31 14:40:35,821 INFO L156 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2019-01-31 14:40:35,830 INFO L168 ceAbstractionStarter]: Appying trace abstraction to program that has 4 error locations. [2019-01-31 14:40:35,849 INFO L257 AbstractCegarLoop]: Starting to check reachability of 4 error locations. [2019-01-31 14:40:35,889 INFO L382 AbstractCegarLoop]: Interprodecural is true [2019-01-31 14:40:35,890 INFO L383 AbstractCegarLoop]: Hoare is true [2019-01-31 14:40:35,890 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2019-01-31 14:40:35,890 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2019-01-31 14:40:35,890 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2019-01-31 14:40:35,890 INFO L387 AbstractCegarLoop]: Difference is false [2019-01-31 14:40:35,890 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2019-01-31 14:40:35,891 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2019-01-31 14:40:35,914 INFO L276 IsEmpty]: Start isEmpty. Operand 11 states. [2019-01-31 14:40:35,928 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 3 [2019-01-31 14:40:35,929 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:40:35,930 INFO L402 BasicCegarLoop]: trace histogram [1, 1] [2019-01-31 14:40:35,932 INFO L423 AbstractCegarLoop]: === Iteration 1 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:40:35,941 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:40:35,942 INFO L82 PathProgramCache]: Analyzing trace with hash 980, now seen corresponding path program 1 times [2019-01-31 14:40:35,944 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:40:35,989 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:40:35,990 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:40:35,990 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:40:35,990 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:40:36,038 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:40:36,150 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-31 14:40:36,155 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-31 14:40:36,157 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:40:36,158 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-01-31 14:40:36,158 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [1] imperfect sequences [] total 1 [2019-01-31 14:40:36,159 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-31 14:40:36,164 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 2 [2019-01-31 14:40:36,166 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:40:36,168 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2019-01-31 14:40:36,182 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 2 edges. 2 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:40:36,182 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2019-01-31 14:40:36,189 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2019-01-31 14:40:36,190 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-31 14:40:36,192 INFO L87 Difference]: Start difference. First operand 11 states. Second operand 3 states. [2019-01-31 14:40:36,531 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:40:36,532 INFO L93 Difference]: Finished difference Result 21 states and 27 transitions. [2019-01-31 14:40:36,532 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-31 14:40:36,532 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 2 [2019-01-31 14:40:36,533 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:40:36,534 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-31 14:40:36,538 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 27 transitions. [2019-01-31 14:40:36,538 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-31 14:40:36,541 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 27 transitions. [2019-01-31 14:40:36,541 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 27 transitions. [2019-01-31 14:40:36,807 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 27 edges. 27 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:40:36,818 INFO L225 Difference]: With dead ends: 21 [2019-01-31 14:40:36,818 INFO L226 Difference]: Without dead ends: 16 [2019-01-31 14:40:36,821 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 1 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-31 14:40:36,840 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 16 states. [2019-01-31 14:40:36,891 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 16 to 10. [2019-01-31 14:40:36,891 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:40:36,892 INFO L82 GeneralOperation]: Start isEquivalent. First operand 16 states. Second operand 10 states. [2019-01-31 14:40:36,893 INFO L74 IsIncluded]: Start isIncluded. First operand 16 states. Second operand 10 states. [2019-01-31 14:40:36,893 INFO L87 Difference]: Start difference. First operand 16 states. Second operand 10 states. [2019-01-31 14:40:36,897 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:40:36,897 INFO L93 Difference]: Finished difference Result 16 states and 22 transitions. [2019-01-31 14:40:36,897 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 22 transitions. [2019-01-31 14:40:36,898 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:40:36,898 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:40:36,898 INFO L74 IsIncluded]: Start isIncluded. First operand 10 states. Second operand 16 states. [2019-01-31 14:40:36,898 INFO L87 Difference]: Start difference. First operand 10 states. Second operand 16 states. [2019-01-31 14:40:36,901 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:40:36,902 INFO L93 Difference]: Finished difference Result 16 states and 22 transitions. [2019-01-31 14:40:36,902 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 22 transitions. [2019-01-31 14:40:36,902 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:40:36,902 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:40:36,903 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:40:36,903 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:40:36,903 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:40:36,905 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 17 transitions. [2019-01-31 14:40:36,907 INFO L78 Accepts]: Start accepts. Automaton has 10 states and 17 transitions. Word has length 2 [2019-01-31 14:40:36,907 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:40:36,907 INFO L480 AbstractCegarLoop]: Abstraction has 10 states and 17 transitions. [2019-01-31 14:40:36,907 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2019-01-31 14:40:36,908 INFO L276 IsEmpty]: Start isEmpty. Operand 10 states and 17 transitions. [2019-01-31 14:40:36,908 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-31 14:40:36,908 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:40:36,908 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-31 14:40:36,909 INFO L423 AbstractCegarLoop]: === Iteration 2 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:40:36,909 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:40:36,909 INFO L82 PathProgramCache]: Analyzing trace with hash 30306, now seen corresponding path program 1 times [2019-01-31 14:40:36,909 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:40:36,910 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:40:36,911 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:40:36,911 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:40:36,911 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:40:36,926 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:40:37,265 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-31 14:40:37,274 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-31 14:40:37,288 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-31 14:40:37,288 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:40:37,289 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:40:37,289 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:40:37,290 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-01-31 14:40:37,292 INFO L207 CegarAbsIntRunner]: [0], [16], [19] [2019-01-31 14:40:37,328 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:40:37,329 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:40:37,414 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:40:37,415 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-31 14:40:37,420 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:40:37,421 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:40:37,422 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:40:37,422 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:40:37,433 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:40:37,433 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:40:37,458 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:40:37,480 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:40:37,484 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:40:37,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-31 14:40:37,643 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:37,645 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-31 14:40:37,667 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:37,670 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:37,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-31 14:40:37,810 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:37,812 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:37,814 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:37,818 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-31 14:40:37,824 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:40:37,910 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:40:37,921 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:40:37,995 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:40:38,055 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:40:38,055 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-31 14:40:38,069 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:40:38,070 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_22|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_22| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:40:38,070 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:40:38,330 WARN L181 SmtUtils]: Spent 101.00 ms on a formula simplification that was a NOOP. DAG size: 20 [2019-01-31 14:40:38,464 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:38,465 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:38,467 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:38,468 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:38,470 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:38,473 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:38,474 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:38,476 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-31 14:40:38,487 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:40:38,577 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:40:38,578 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-31 14:40:48,608 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:40:48,609 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_23|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_23| ULTIMATE.start_main_p4))) (and (= .cse0 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_23| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_23| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_23| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_23| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:40:48,609 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_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-31 14:40:48,689 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-31 14:40:48,691 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-31 14:40:48,692 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-31 14:40:48,693 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:40:48,693 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:40:48,735 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-31 14:40:48,736 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-31 14:40:48,738 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-31 14:40:48,739 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:40:48,759 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:40:48,760 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-31 14:40:48,760 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:40:48,761 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-31 14:40:48,761 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:40:48,761 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-31 14:40:48,779 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 6 edges. 6 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:40:48,780 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-31 14:40:48,780 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-31 14:40:48,780 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-31 14:40:48,780 INFO L87 Difference]: Start difference. First operand 10 states and 17 transitions. Second operand 6 states. [2019-01-31 14:40:49,354 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:40:49,354 INFO L93 Difference]: Finished difference Result 31 states and 44 transitions. [2019-01-31 14:40:49,354 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-31 14:40:49,354 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-31 14:40:49,355 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:40:49,355 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:40:49,358 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 44 transitions. [2019-01-31 14:40:49,358 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:40:49,360 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 44 transitions. [2019-01-31 14:40:49,360 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 44 transitions. [2019-01-31 14:40:49,491 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-31 14:40:49,494 INFO L225 Difference]: With dead ends: 31 [2019-01-31 14:40:49,494 INFO L226 Difference]: Without dead ends: 28 [2019-01-31 14:40:49,495 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 7 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-01-31 14:40:49,496 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 28 states. [2019-01-31 14:40:49,506 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 28 to 13. [2019-01-31 14:40:49,506 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:40:49,507 INFO L82 GeneralOperation]: Start isEquivalent. First operand 28 states. Second operand 13 states. [2019-01-31 14:40:49,507 INFO L74 IsIncluded]: Start isIncluded. First operand 28 states. Second operand 13 states. [2019-01-31 14:40:49,507 INFO L87 Difference]: Start difference. First operand 28 states. Second operand 13 states. [2019-01-31 14:40:49,510 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:40:49,511 INFO L93 Difference]: Finished difference Result 28 states and 40 transitions. [2019-01-31 14:40:49,511 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 40 transitions. [2019-01-31 14:40:49,511 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:40:49,512 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:40:49,512 INFO L74 IsIncluded]: Start isIncluded. First operand 13 states. Second operand 28 states. [2019-01-31 14:40:49,512 INFO L87 Difference]: Start difference. First operand 13 states. Second operand 28 states. [2019-01-31 14:40:49,514 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:40:49,515 INFO L93 Difference]: Finished difference Result 28 states and 40 transitions. [2019-01-31 14:40:49,515 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 40 transitions. [2019-01-31 14:40:49,515 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:40:49,515 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:40:49,516 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:40:49,516 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:40:49,516 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2019-01-31 14:40:49,517 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 25 transitions. [2019-01-31 14:40:49,517 INFO L78 Accepts]: Start accepts. Automaton has 13 states and 25 transitions. Word has length 3 [2019-01-31 14:40:49,518 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:40:49,518 INFO L480 AbstractCegarLoop]: Abstraction has 13 states and 25 transitions. [2019-01-31 14:40:49,518 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-31 14:40:49,518 INFO L276 IsEmpty]: Start isEmpty. Operand 13 states and 25 transitions. [2019-01-31 14:40:49,518 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-31 14:40:49,519 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:40:49,519 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-31 14:40:49,519 INFO L423 AbstractCegarLoop]: === Iteration 3 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:40:49,519 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:40:49,519 INFO L82 PathProgramCache]: Analyzing trace with hash 30432, now seen corresponding path program 1 times [2019-01-31 14:40:49,520 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:40:49,521 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:40:49,521 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:40:49,521 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:40:49,521 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:40:49,530 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:40:49,570 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-31 14:40:49,572 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-31 14:40:49,576 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-31 14:40:49,576 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:40:49,576 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-01-31 14:40:49,577 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [1] imperfect sequences [] total 1 [2019-01-31 14:40:49,577 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-31 14:40:49,577 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 3 [2019-01-31 14:40:49,578 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:40:49,578 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2019-01-31 14:40:49,601 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 3 edges. 3 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:40:49,601 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2019-01-31 14:40:49,601 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2019-01-31 14:40:49,601 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-31 14:40:49,602 INFO L87 Difference]: Start difference. First operand 13 states and 25 transitions. Second operand 3 states. [2019-01-31 14:40:49,703 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:40:49,703 INFO L93 Difference]: Finished difference Result 15 states and 25 transitions. [2019-01-31 14:40:49,703 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-31 14:40:49,704 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 3 [2019-01-31 14:40:49,704 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:40:49,704 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-31 14:40:49,704 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-01-31 14:40:49,704 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-31 14:40:49,705 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-01-31 14:40:49,705 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 20 transitions. [2019-01-31 14:40:49,735 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-31 14:40:49,736 INFO L225 Difference]: With dead ends: 15 [2019-01-31 14:40:49,736 INFO L226 Difference]: Without dead ends: 14 [2019-01-31 14:40:49,736 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 1 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-31 14:40:49,737 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 14 states. [2019-01-31 14:40:49,759 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 14 to 13. [2019-01-31 14:40:49,759 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:40:49,760 INFO L82 GeneralOperation]: Start isEquivalent. First operand 14 states. Second operand 13 states. [2019-01-31 14:40:49,760 INFO L74 IsIncluded]: Start isIncluded. First operand 14 states. Second operand 13 states. [2019-01-31 14:40:49,760 INFO L87 Difference]: Start difference. First operand 14 states. Second operand 13 states. [2019-01-31 14:40:49,761 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:40:49,761 INFO L93 Difference]: Finished difference Result 14 states and 24 transitions. [2019-01-31 14:40:49,762 INFO L276 IsEmpty]: Start isEmpty. Operand 14 states and 24 transitions. [2019-01-31 14:40:49,762 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:40:49,762 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:40:49,762 INFO L74 IsIncluded]: Start isIncluded. First operand 13 states. Second operand 14 states. [2019-01-31 14:40:49,762 INFO L87 Difference]: Start difference. First operand 13 states. Second operand 14 states. [2019-01-31 14:40:49,764 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:40:49,764 INFO L93 Difference]: Finished difference Result 14 states and 24 transitions. [2019-01-31 14:40:49,764 INFO L276 IsEmpty]: Start isEmpty. Operand 14 states and 24 transitions. [2019-01-31 14:40:49,764 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:40:49,765 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:40:49,765 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:40:49,765 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:40:49,765 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2019-01-31 14:40:49,766 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 24 transitions. [2019-01-31 14:40:49,766 INFO L78 Accepts]: Start accepts. Automaton has 13 states and 24 transitions. Word has length 3 [2019-01-31 14:40:49,767 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:40:49,767 INFO L480 AbstractCegarLoop]: Abstraction has 13 states and 24 transitions. [2019-01-31 14:40:49,767 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2019-01-31 14:40:49,767 INFO L276 IsEmpty]: Start isEmpty. Operand 13 states and 24 transitions. [2019-01-31 14:40:49,767 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-31 14:40:49,767 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:40:49,767 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-31 14:40:49,768 INFO L423 AbstractCegarLoop]: === Iteration 4 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:40:49,768 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:40:49,768 INFO L82 PathProgramCache]: Analyzing trace with hash 29996, now seen corresponding path program 1 times [2019-01-31 14:40:49,768 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:40:49,769 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:40:49,769 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:40:49,770 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:40:49,770 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:40:49,779 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:40:49,834 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-31 14:40:49,835 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-31 14:40:49,836 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-31 14:40:49,836 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:40:49,836 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:40:49,836 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:40:49,837 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-01-31 14:40:49,837 INFO L207 CegarAbsIntRunner]: [0], [6], [19] [2019-01-31 14:40:49,839 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:40:49,839 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:40:49,867 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:40:49,867 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-31 14:40:49,867 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:40:49,867 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:40:49,867 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:40:49,867 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:40:49,875 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:40:49,876 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:40:49,883 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:40:49,886 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:40:49,887 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:40:49,918 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-31 14:40:49,941 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:49,942 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-31 14:40:49,961 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:49,962 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:49,965 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-31 14:40:49,992 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:49,993 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:49,995 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:49,998 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-31 14:40:50,005 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:40:50,040 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:40:50,055 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:40:50,072 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:40:50,095 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:40:50,095 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 4 variables, input treesize:25, output treesize:30 [2019-01-31 14:40:50,104 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:40:50,104 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_25|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_25| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:40:50,104 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:40:50,165 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:50,167 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:50,168 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:50,170 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:50,171 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:50,173 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:50,175 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:50,177 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:40:50,185 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:40:50,245 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:40:50,246 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-31 14:40:50,256 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:40:50,257 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_26|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_26| ULTIMATE.start_main_p1))) (and (= |#memory_int| (store |v_#memory_int_26| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 0 .cse0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_26| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_26| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |v_#memory_int_26| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:40:50,257 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:40:50,290 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-31 14:40:50,293 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-31 14:40:50,294 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-31 14:40:50,294 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:40:50,294 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:40:50,317 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-31 14:40:50,318 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-31 14:40:50,320 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-31 14:40:50,321 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:40:50,340 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-01-31 14:40:50,340 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 6 [2019-01-31 14:40:50,340 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-31 14:40:50,340 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 3 [2019-01-31 14:40:50,340 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:40:50,341 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-31 14:40:50,346 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 3 edges. 3 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:40:50,346 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-31 14:40:50,346 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-31 14:40:50,347 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-31 14:40:50,347 INFO L87 Difference]: Start difference. First operand 13 states and 24 transitions. Second operand 4 states. [2019-01-31 14:40:50,449 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:40:50,449 INFO L93 Difference]: Finished difference Result 18 states and 41 transitions. [2019-01-31 14:40:50,449 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2019-01-31 14:40:50,450 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 3 [2019-01-31 14:40:50,450 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:40:50,450 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-31 14:40:50,451 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 24 transitions. [2019-01-31 14:40:50,451 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-31 14:40:50,452 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 24 transitions. [2019-01-31 14:40:50,452 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 24 transitions. [2019-01-31 14:40:50,498 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 24 edges. 24 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:40:50,500 INFO L225 Difference]: With dead ends: 18 [2019-01-31 14:40:50,500 INFO L226 Difference]: Without dead ends: 17 [2019-01-31 14:40:50,500 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-31 14:40:50,501 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 17 states. [2019-01-31 14:40:50,607 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 17 to 16. [2019-01-31 14:40:50,607 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:40:50,607 INFO L82 GeneralOperation]: Start isEquivalent. First operand 17 states. Second operand 16 states. [2019-01-31 14:40:50,607 INFO L74 IsIncluded]: Start isIncluded. First operand 17 states. Second operand 16 states. [2019-01-31 14:40:50,607 INFO L87 Difference]: Start difference. First operand 17 states. Second operand 16 states. [2019-01-31 14:40:50,609 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:40:50,609 INFO L93 Difference]: Finished difference Result 17 states and 40 transitions. [2019-01-31 14:40:50,610 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 40 transitions. [2019-01-31 14:40:50,610 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:40:50,610 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:40:50,610 INFO L74 IsIncluded]: Start isIncluded. First operand 16 states. Second operand 17 states. [2019-01-31 14:40:50,610 INFO L87 Difference]: Start difference. First operand 16 states. Second operand 17 states. [2019-01-31 14:40:50,612 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:40:50,612 INFO L93 Difference]: Finished difference Result 17 states and 40 transitions. [2019-01-31 14:40:50,612 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 40 transitions. [2019-01-31 14:40:50,613 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:40:50,613 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:40:50,613 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:40:50,613 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:40:50,613 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 16 states. [2019-01-31 14:40:50,615 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 40 transitions. [2019-01-31 14:40:50,615 INFO L78 Accepts]: Start accepts. Automaton has 16 states and 40 transitions. Word has length 3 [2019-01-31 14:40:50,615 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:40:50,615 INFO L480 AbstractCegarLoop]: Abstraction has 16 states and 40 transitions. [2019-01-31 14:40:50,615 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-31 14:40:50,616 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 40 transitions. [2019-01-31 14:40:50,616 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-31 14:40:50,616 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:40:50,616 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-31 14:40:50,616 INFO L423 AbstractCegarLoop]: === Iteration 5 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:40:50,617 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:40:50,617 INFO L82 PathProgramCache]: Analyzing trace with hash 30120, now seen corresponding path program 1 times [2019-01-31 14:40:50,617 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:40:50,618 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:40:50,618 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:40:50,618 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:40:50,618 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:40:50,627 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:40:50,712 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-31 14:40:50,712 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-31 14:40:50,713 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-31 14:40:50,714 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:40:50,714 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:40:50,714 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:40:50,714 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-01-31 14:40:50,715 INFO L207 CegarAbsIntRunner]: [0], [10], [19] [2019-01-31 14:40:50,716 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:40:50,716 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:40:50,729 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:40:50,729 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-31 14:40:50,729 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:40:50,730 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:40:50,730 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:40:50,730 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:40:50,738 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:40:50,739 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:40:50,746 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:40:50,749 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:40:50,749 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:40:50,783 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-31 14:40:50,792 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:50,793 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-31 14:40:50,863 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:50,864 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:50,865 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-31 14:40:50,880 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:50,881 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:50,884 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:50,885 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-31 14:40:50,892 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:40:50,911 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:40:50,922 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:40:50,933 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:40:50,952 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:40:50,953 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-31 14:40:50,957 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:40:50,958 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_28|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_28| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:40:50,958 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:40:51,024 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:51,025 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:51,027 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:51,028 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:51,032 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:51,033 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:51,034 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:51,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-31 14:40:51,040 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:40:51,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-31 14:40:51,118 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-31 14:40:51,139 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:40:51,140 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_29|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_29| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_29| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_29| ULTIMATE.start_main_p4) 0) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (store |v_#memory_int_29| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_29| ULTIMATE.start_main_p3) 0))) [2019-01-31 14:40:51,140 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 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-31 14:40:51,173 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-31 14:40:51,175 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-31 14:40:51,176 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-31 14:40:51,177 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:40:51,177 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:40:51,209 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-31 14:40:51,210 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-31 14:40:51,212 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-31 14:40:51,212 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:40:51,231 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:40:51,231 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-31 14:40:51,232 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:40:51,232 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-31 14:40:51,232 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:40:51,232 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-31 14:40:51,241 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 6 edges. 6 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:40:51,242 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-31 14:40:51,242 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-31 14:40:51,242 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-31 14:40:51,242 INFO L87 Difference]: Start difference. First operand 16 states and 40 transitions. Second operand 6 states. [2019-01-31 14:40:51,699 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:40:51,699 INFO L93 Difference]: Finished difference Result 32 states and 62 transitions. [2019-01-31 14:40:51,699 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-31 14:40:51,699 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-31 14:40:51,700 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:40:51,700 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:40:51,701 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 41 transitions. [2019-01-31 14:40:51,701 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:40:51,702 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 41 transitions. [2019-01-31 14:40:51,702 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 41 transitions. [2019-01-31 14:40:51,781 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-31 14:40:51,783 INFO L225 Difference]: With dead ends: 32 [2019-01-31 14:40:51,784 INFO L226 Difference]: Without dead ends: 31 [2019-01-31 14:40:51,784 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-31 14:40:51,785 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 31 states. [2019-01-31 14:40:51,831 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 31 to 18. [2019-01-31 14:40:51,831 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:40:51,831 INFO L82 GeneralOperation]: Start isEquivalent. First operand 31 states. Second operand 18 states. [2019-01-31 14:40:51,831 INFO L74 IsIncluded]: Start isIncluded. First operand 31 states. Second operand 18 states. [2019-01-31 14:40:51,831 INFO L87 Difference]: Start difference. First operand 31 states. Second operand 18 states. [2019-01-31 14:40:51,834 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:40:51,834 INFO L93 Difference]: Finished difference Result 31 states and 60 transitions. [2019-01-31 14:40:51,834 INFO L276 IsEmpty]: Start isEmpty. Operand 31 states and 60 transitions. [2019-01-31 14:40:51,835 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:40:51,835 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:40:51,835 INFO L74 IsIncluded]: Start isIncluded. First operand 18 states. Second operand 31 states. [2019-01-31 14:40:51,835 INFO L87 Difference]: Start difference. First operand 18 states. Second operand 31 states. [2019-01-31 14:40:51,838 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:40:51,838 INFO L93 Difference]: Finished difference Result 31 states and 60 transitions. [2019-01-31 14:40:51,838 INFO L276 IsEmpty]: Start isEmpty. Operand 31 states and 60 transitions. [2019-01-31 14:40:51,838 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:40:51,839 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:40:51,839 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:40:51,839 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:40:51,839 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 18 states. [2019-01-31 14:40:51,841 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 50 transitions. [2019-01-31 14:40:51,841 INFO L78 Accepts]: Start accepts. Automaton has 18 states and 50 transitions. Word has length 3 [2019-01-31 14:40:51,841 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:40:51,841 INFO L480 AbstractCegarLoop]: Abstraction has 18 states and 50 transitions. [2019-01-31 14:40:51,841 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-31 14:40:51,841 INFO L276 IsEmpty]: Start isEmpty. Operand 18 states and 50 transitions. [2019-01-31 14:40:51,842 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:40:51,842 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:40:51,842 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:40:51,842 INFO L423 AbstractCegarLoop]: === Iteration 6 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:40:51,843 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:40:51,843 INFO L82 PathProgramCache]: Analyzing trace with hash 939538, now seen corresponding path program 1 times [2019-01-31 14:40:51,843 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:40:51,844 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:40:51,844 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:40:51,844 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:40:51,844 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:40:51,853 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:40:51,950 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-31 14:40:51,951 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-31 14:40:51,952 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-31 14:40:51,952 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-31 14:40:51,953 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:40:51,953 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:40:51,953 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:40:51,953 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-31 14:40:51,954 INFO L207 CegarAbsIntRunner]: [0], [16], [20], [21] [2019-01-31 14:40:51,956 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:40:51,956 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:40:51,994 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:40:51,994 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-31 14:40:51,994 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:40:51,995 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:40:51,995 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:40:51,995 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:40:52,004 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:40:52,005 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:40:52,017 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:40:52,020 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:40:52,020 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:40:52,044 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-31 14:40:52,057 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-31 14:40:52,099 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:52,102 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-31 14:40:52,154 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:52,155 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:52,157 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-31 14:40:52,161 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:40:52,175 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:40:52,184 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:40:52,192 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:40:52,270 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:40:52,270 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:22, output treesize:27 [2019-01-31 14:40:52,274 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:40:52,275 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_31|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_31| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:40:52,275 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:40:52,331 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:52,332 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:52,336 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:52,337 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:52,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-31 14:40:52,339 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:40:52,361 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:40:52,361 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:32, output treesize:22 [2019-01-31 14:40:52,896 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:40:52,897 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_32|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_32| ULTIMATE.start_main_p4))) (and (= (store |v_#memory_int_32| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_32| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_32| ULTIMATE.start_main_p3) 0) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:40:52,897 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (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-31 14:40:53,051 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-31 14:40:53,053 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-31 14:40:53,053 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-31 14:40:53,054 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-31 14:40:53,055 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:40:53,055 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:40:53,083 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-31 14:40:53,084 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-31 14:40:53,085 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-31 14:40:53,087 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-31 14:40:53,088 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:40:53,107 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-01-31 14:40:53,107 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 6 [2019-01-31 14:40:53,107 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-31 14:40:53,107 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-01-31 14:40:53,107 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:40:53,108 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-31 14:40:53,114 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 4 edges. 4 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:40:53,114 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-31 14:40:53,114 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-31 14:40:53,114 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=26, Invalid=30, Unknown=0, NotChecked=0, Total=56 [2019-01-31 14:40:53,115 INFO L87 Difference]: Start difference. First operand 18 states and 50 transitions. Second operand 4 states. [2019-01-31 14:40:53,214 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:40:53,215 INFO L93 Difference]: Finished difference Result 22 states and 58 transitions. [2019-01-31 14:40:53,215 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-31 14:40:53,215 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-01-31 14:40:53,215 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:40:53,216 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-31 14:40:53,217 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-01-31 14:40:53,217 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-31 14:40:53,218 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-01-31 14:40:53,218 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 20 transitions. [2019-01-31 14:40:53,239 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-31 14:40:53,240 INFO L225 Difference]: With dead ends: 22 [2019-01-31 14:40:53,241 INFO L226 Difference]: Without dead ends: 21 [2019-01-31 14:40:53,241 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 8 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=26, Invalid=30, Unknown=0, NotChecked=0, Total=56 [2019-01-31 14:40:53,242 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 21 states. [2019-01-31 14:40:53,287 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 21 to 20. [2019-01-31 14:40:53,288 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:40:53,288 INFO L82 GeneralOperation]: Start isEquivalent. First operand 21 states. Second operand 20 states. [2019-01-31 14:40:53,288 INFO L74 IsIncluded]: Start isIncluded. First operand 21 states. Second operand 20 states. [2019-01-31 14:40:53,288 INFO L87 Difference]: Start difference. First operand 21 states. Second operand 20 states. [2019-01-31 14:40:53,291 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:40:53,291 INFO L93 Difference]: Finished difference Result 21 states and 57 transitions. [2019-01-31 14:40:53,291 INFO L276 IsEmpty]: Start isEmpty. Operand 21 states and 57 transitions. [2019-01-31 14:40:53,291 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:40:53,292 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:40:53,292 INFO L74 IsIncluded]: Start isIncluded. First operand 20 states. Second operand 21 states. [2019-01-31 14:40:53,292 INFO L87 Difference]: Start difference. First operand 20 states. Second operand 21 states. [2019-01-31 14:40:53,293 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:40:53,294 INFO L93 Difference]: Finished difference Result 21 states and 57 transitions. [2019-01-31 14:40:53,294 INFO L276 IsEmpty]: Start isEmpty. Operand 21 states and 57 transitions. [2019-01-31 14:40:53,294 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:40:53,294 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:40:53,295 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:40:53,295 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:40:53,295 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 20 states. [2019-01-31 14:40:53,296 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 57 transitions. [2019-01-31 14:40:53,296 INFO L78 Accepts]: Start accepts. Automaton has 20 states and 57 transitions. Word has length 4 [2019-01-31 14:40:53,297 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:40:53,297 INFO L480 AbstractCegarLoop]: Abstraction has 20 states and 57 transitions. [2019-01-31 14:40:53,297 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-31 14:40:53,297 INFO L276 IsEmpty]: Start isEmpty. Operand 20 states and 57 transitions. [2019-01-31 14:40:53,297 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:40:53,297 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:40:53,298 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:40:53,298 INFO L423 AbstractCegarLoop]: === Iteration 7 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:40:53,298 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:40:53,298 INFO L82 PathProgramCache]: Analyzing trace with hash 939226, now seen corresponding path program 1 times [2019-01-31 14:40:53,298 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:40:53,299 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:40:53,299 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:40:53,299 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:40:53,300 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:40:53,315 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:40:53,463 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-31 14:40:53,464 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-31 14:40:53,465 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-31 14:40:53,465 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-31 14:40:53,466 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:40:53,466 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:40:53,466 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:40:53,466 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-31 14:40:53,467 INFO L207 CegarAbsIntRunner]: [0], [10], [16], [19] [2019-01-31 14:40:53,469 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:40:53,469 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:40:53,504 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:40:53,504 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-31 14:40:53,504 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:40:53,504 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:40:53,505 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:40:53,505 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:40:53,514 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:40:53,514 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:40:53,519 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:40:53,539 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:40:53,540 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:40:53,686 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-31 14:40:53,696 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:53,697 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-31 14:40:53,709 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:53,710 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:53,711 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-31 14:40:53,734 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:53,735 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:53,736 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:53,738 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-31 14:40:53,746 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:40:53,764 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:40:53,773 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:40:53,783 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:40:53,798 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:40:53,798 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-31 14:40:53,808 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:40:53,808 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_34|, ULTIMATE.start_main_p3]. (and (= (store (store (store (store |v_#memory_int_34| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:40:53,808 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:40:54,004 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:54,006 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:54,007 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:54,008 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:54,009 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:54,010 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:54,011 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:54,013 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-31 14:40:54,015 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:40:54,096 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:40:54,097 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:40:54,111 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:40:54,112 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_35|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_35| ULTIMATE.start_main_p4))) (and (= 0 (select |v_#memory_int_35| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_35| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_35| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_35| ULTIMATE.start_main_p3)) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:40:54,112 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (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-31 14:40:54,163 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:54,164 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:54,165 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:54,166 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:54,168 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:54,169 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:54,170 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:54,171 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:40:54,172 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 60 [2019-01-31 14:40:54,192 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:40:54,229 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:40:54,229 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:30 [2019-01-31 14:40:54,238 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:40:54,238 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_36|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_36| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_36| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_36| ULTIMATE.start_main_p1) 0) (= 0 (+ (select |v_#memory_int_36| ULTIMATE.start_main_p4) 1)) (= (store |v_#memory_int_36| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:40:54,238 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 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-31 14:40:54,265 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-31 14:40:54,280 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-31 14:40:54,282 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-31 14:40:54,284 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-31 14:40:54,284 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:40:54,284 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:40:54,341 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-31 14:40:54,342 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-31 14:40:54,344 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-31 14:40:54,346 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-31 14:40:54,346 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:40:54,365 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:40:54,366 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:40:54,366 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:40:54,366 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:40:54,366 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:40:54,366 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:40:54,386 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:40:54,386 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:40:54,386 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:40:54,386 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=43, Invalid=67, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:40:54,386 INFO L87 Difference]: Start difference. First operand 20 states and 57 transitions. Second operand 8 states. [2019-01-31 14:40:55,084 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:40:55,085 INFO L93 Difference]: Finished difference Result 37 states and 74 transitions. [2019-01-31 14:40:55,085 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:40:55,085 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:40:55,085 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:40:55,085 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:40:55,086 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 48 transitions. [2019-01-31 14:40:55,087 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:40:55,087 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 48 transitions. [2019-01-31 14:40:55,087 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 48 transitions. [2019-01-31 14:40:55,168 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-31 14:40:55,169 INFO L225 Difference]: With dead ends: 37 [2019-01-31 14:40:55,169 INFO L226 Difference]: Without dead ends: 36 [2019-01-31 14:40:55,170 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:40:55,170 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 36 states. [2019-01-31 14:40:55,227 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 36 to 17. [2019-01-31 14:40:55,227 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:40:55,228 INFO L82 GeneralOperation]: Start isEquivalent. First operand 36 states. Second operand 17 states. [2019-01-31 14:40:55,228 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 17 states. [2019-01-31 14:40:55,228 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 17 states. [2019-01-31 14:40:55,231 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:40:55,231 INFO L93 Difference]: Finished difference Result 36 states and 72 transitions. [2019-01-31 14:40:55,231 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 72 transitions. [2019-01-31 14:40:55,231 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:40:55,231 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:40:55,232 INFO L74 IsIncluded]: Start isIncluded. First operand 17 states. Second operand 36 states. [2019-01-31 14:40:55,232 INFO L87 Difference]: Start difference. First operand 17 states. Second operand 36 states. [2019-01-31 14:40:55,234 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:40:55,234 INFO L93 Difference]: Finished difference Result 36 states and 72 transitions. [2019-01-31 14:40:55,234 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 72 transitions. [2019-01-31 14:40:55,235 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:40:55,235 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:40:55,235 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:40:55,235 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:40:55,235 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 17 states. [2019-01-31 14:40:55,237 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 41 transitions. [2019-01-31 14:40:55,237 INFO L78 Accepts]: Start accepts. Automaton has 17 states and 41 transitions. Word has length 4 [2019-01-31 14:40:55,237 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:40:55,237 INFO L480 AbstractCegarLoop]: Abstraction has 17 states and 41 transitions. [2019-01-31 14:40:55,237 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:40:55,237 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 41 transitions. [2019-01-31 14:40:55,238 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:40:55,238 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:40:55,238 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:40:55,238 INFO L423 AbstractCegarLoop]: === Iteration 8 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:40:55,239 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:40:55,239 INFO L82 PathProgramCache]: Analyzing trace with hash 939350, now seen corresponding path program 1 times [2019-01-31 14:40:55,239 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:40:55,240 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:40:55,240 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:40:55,240 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:40:55,240 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:40:55,249 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:40:55,432 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-31 14:40:55,434 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-31 14:40:55,435 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-31 14:40:55,436 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-31 14:40:55,436 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:40:55,437 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:40:55,437 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:40:55,437 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-31 14:40:55,437 INFO L207 CegarAbsIntRunner]: [0], [14], [16], [19] [2019-01-31 14:40:55,441 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:40:55,441 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:40:55,461 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:40:55,461 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-31 14:40:55,462 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:40:55,462 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:40:55,462 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:40:55,462 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:40:55,473 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:40:55,474 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:40:55,484 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:40:55,490 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:40:55,491 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:40:55,510 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 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-31 14:40:55,528 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:55,529 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-31 14:40:55,545 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:55,546 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:55,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, 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-31 14:40:55,588 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:55,590 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:55,592 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:55,593 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-31 14:40:55,601 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:40:55,620 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:40:55,635 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:40:55,643 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:40:55,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-31 14:40:55,661 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-31 14:40:55,668 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:40:55,668 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_39|, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_39| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:40:55,668 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:40:55,846 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:55,847 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:55,848 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:55,850 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:55,851 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:55,852 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:55,854 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:55,855 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-31 14:40:55,859 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:40:55,888 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:40:55,888 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:40:56,087 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:40:56,087 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_40|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_40| ULTIMATE.start_main_p4))) (and (= (select |v_#memory_int_40| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_40| ULTIMATE.start_main_p2) 0) (= |#memory_int| (store |v_#memory_int_40| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= (select |v_#memory_int_40| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= .cse0 0))) [2019-01-31 14:40:56,087 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (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-31 14:40:56,250 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:56,251 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:56,253 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:56,254 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:56,255 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:56,256 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:56,258 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:56,259 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:56,262 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:40:56,263 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-31 14:40:56,265 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:40:56,324 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:40:56,325 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-31 14:41:06,770 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:41:06,771 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_41|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_41| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_41| ULTIMATE.start_main_p3 (+ .cse0 1))) (= 0 (+ (select |v_#memory_int_41| ULTIMATE.start_main_p4) 1)) (= 0 (select |v_#memory_int_41| ULTIMATE.start_main_p2)) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_41| ULTIMATE.start_main_p1) 0))) [2019-01-31 14:41:06,771 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:41:06,814 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-31 14:41:06,817 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-31 14:41:06,820 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-31 14:41:06,824 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-31 14:41:06,824 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:41:06,824 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:41:06,864 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-31 14:41:06,866 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-31 14:41:06,867 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-31 14:41:06,869 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-31 14:41:06,870 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:41:06,890 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:41:06,890 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:41:06,890 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:41:06,891 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:41:06,891 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:41:06,891 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:41:06,902 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:41:06,902 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:41:06,903 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:41:06,903 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:41:06,903 INFO L87 Difference]: Start difference. First operand 17 states and 41 transitions. Second operand 8 states. [2019-01-31 14:41:07,629 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:41:07,629 INFO L93 Difference]: Finished difference Result 42 states and 89 transitions. [2019-01-31 14:41:07,629 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:41:07,629 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:41:07,630 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:41:07,630 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:41:07,630 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 50 transitions. [2019-01-31 14:41:07,631 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:41:07,631 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 50 transitions. [2019-01-31 14:41:07,631 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 50 transitions. [2019-01-31 14:41:07,709 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-31 14:41:07,710 INFO L225 Difference]: With dead ends: 42 [2019-01-31 14:41:07,710 INFO L226 Difference]: Without dead ends: 38 [2019-01-31 14:41:07,711 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-31 14:41:07,711 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 38 states. [2019-01-31 14:41:07,818 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 38 to 22. [2019-01-31 14:41:07,818 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:41:07,818 INFO L82 GeneralOperation]: Start isEquivalent. First operand 38 states. Second operand 22 states. [2019-01-31 14:41:07,819 INFO L74 IsIncluded]: Start isIncluded. First operand 38 states. Second operand 22 states. [2019-01-31 14:41:07,819 INFO L87 Difference]: Start difference. First operand 38 states. Second operand 22 states. [2019-01-31 14:41:07,821 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:41:07,822 INFO L93 Difference]: Finished difference Result 38 states and 82 transitions. [2019-01-31 14:41:07,822 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 82 transitions. [2019-01-31 14:41:07,822 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:41:07,822 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:41:07,822 INFO L74 IsIncluded]: Start isIncluded. First operand 22 states. Second operand 38 states. [2019-01-31 14:41:07,823 INFO L87 Difference]: Start difference. First operand 22 states. Second operand 38 states. [2019-01-31 14:41:07,824 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:41:07,824 INFO L93 Difference]: Finished difference Result 38 states and 82 transitions. [2019-01-31 14:41:07,824 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 82 transitions. [2019-01-31 14:41:07,825 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:41:07,825 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:41:07,825 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:41:07,825 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:41:07,825 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 22 states. [2019-01-31 14:41:07,826 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 22 states to 22 states and 65 transitions. [2019-01-31 14:41:07,827 INFO L78 Accepts]: Start accepts. Automaton has 22 states and 65 transitions. Word has length 4 [2019-01-31 14:41:07,827 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:41:07,827 INFO L480 AbstractCegarLoop]: Abstraction has 22 states and 65 transitions. [2019-01-31 14:41:07,827 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:41:07,827 INFO L276 IsEmpty]: Start isEmpty. Operand 22 states and 65 transitions. [2019-01-31 14:41:07,827 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:41:07,827 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:41:07,828 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:41:07,828 INFO L423 AbstractCegarLoop]: === Iteration 9 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:41:07,828 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:41:07,828 INFO L82 PathProgramCache]: Analyzing trace with hash 929802, now seen corresponding path program 1 times [2019-01-31 14:41:07,828 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:41:07,829 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:41:07,829 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:41:07,829 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:41:07,830 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:41:07,837 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:41:07,961 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-31 14:41:07,963 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-31 14:41:07,964 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-31 14:41:07,964 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-31 14:41:07,965 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:41:07,965 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:41:07,965 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:41:07,965 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-31 14:41:07,965 INFO L207 CegarAbsIntRunner]: [0], [6], [16], [19] [2019-01-31 14:41:07,966 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:41:07,966 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:41:07,992 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:41:07,992 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-31 14:41:07,992 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:41:07,993 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:41:07,993 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:41:07,993 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:41:08,002 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:41:08,002 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:41:08,013 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:41:08,016 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:41:08,017 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:41:08,034 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-31 14:41:08,043 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:08,044 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-31 14:41:08,056 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:08,057 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:08,058 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-31 14:41:08,086 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:08,088 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:08,089 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:08,090 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-31 14:41:08,102 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:41:08,122 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:41:08,132 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:41:08,142 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:41:08,158 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:41:08,159 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-31 14:41:08,165 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:41:08,165 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_44|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (and (= (store (store (store (store |v_#memory_int_44| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:41:08,165 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:41:08,269 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:08,271 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:08,272 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:08,273 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:08,275 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:08,276 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:08,277 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:08,279 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:41:08,282 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:41:08,325 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:41:08,325 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:41:08,329 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:41:08,329 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_45|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_45| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_45| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_45| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_45| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_45| ULTIMATE.start_main_p4) 0) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:41:08,329 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:41:08,382 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:08,385 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:08,386 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:08,387 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:08,388 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:08,389 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:08,390 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:08,391 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:08,392 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:08,394 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 57 [2019-01-31 14:41:08,399 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:41:08,431 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:41:08,432 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-31 14:41:11,119 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:41:11,120 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_46|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_46| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= |#memory_int| (store |v_#memory_int_46| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= (select |v_#memory_int_46| ULTIMATE.start_main_p3) 0) (= 0 (select |v_#memory_int_46| ULTIMATE.start_main_p2)) (= 1 (select |v_#memory_int_46| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:41:11,120 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (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-31 14:41:11,148 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-31 14:41:11,150 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-31 14:41:11,152 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-31 14:41:11,154 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-31 14:41:11,154 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:41:11,154 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:41:11,210 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-31 14:41:11,211 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-31 14:41:11,212 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-31 14:41:11,214 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-31 14:41:11,215 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:41:11,234 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:41:11,234 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:41:11,234 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:41:11,235 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:41:11,235 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:41:11,235 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:41:11,247 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:41:11,247 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:41:11,247 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:41:11,248 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:41:11,248 INFO L87 Difference]: Start difference. First operand 22 states and 65 transitions. Second operand 8 states. [2019-01-31 14:41:11,966 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:41:11,966 INFO L93 Difference]: Finished difference Result 51 states and 112 transitions. [2019-01-31 14:41:11,966 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:41:11,966 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:41:11,967 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:41:11,967 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:41:11,968 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 57 transitions. [2019-01-31 14:41:11,968 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:41:11,969 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 57 transitions. [2019-01-31 14:41:11,969 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 57 transitions. [2019-01-31 14:41:12,055 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-31 14:41:12,057 INFO L225 Difference]: With dead ends: 51 [2019-01-31 14:41:12,057 INFO L226 Difference]: Without dead ends: 48 [2019-01-31 14:41:12,057 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-31 14:41:12,057 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 48 states. [2019-01-31 14:41:12,160 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 48 to 28. [2019-01-31 14:41:12,160 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:41:12,160 INFO L82 GeneralOperation]: Start isEquivalent. First operand 48 states. Second operand 28 states. [2019-01-31 14:41:12,160 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand 28 states. [2019-01-31 14:41:12,161 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 28 states. [2019-01-31 14:41:12,164 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:41:12,164 INFO L93 Difference]: Finished difference Result 48 states and 107 transitions. [2019-01-31 14:41:12,164 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 107 transitions. [2019-01-31 14:41:12,165 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:41:12,165 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:41:12,165 INFO L74 IsIncluded]: Start isIncluded. First operand 28 states. Second operand 48 states. [2019-01-31 14:41:12,165 INFO L87 Difference]: Start difference. First operand 28 states. Second operand 48 states. [2019-01-31 14:41:12,167 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:41:12,168 INFO L93 Difference]: Finished difference Result 48 states and 107 transitions. [2019-01-31 14:41:12,168 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 107 transitions. [2019-01-31 14:41:12,168 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:41:12,168 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:41:12,168 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:41:12,169 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:41:12,169 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 28 states. [2019-01-31 14:41:12,170 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 28 states to 28 states and 88 transitions. [2019-01-31 14:41:12,170 INFO L78 Accepts]: Start accepts. Automaton has 28 states and 88 transitions. Word has length 4 [2019-01-31 14:41:12,171 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:41:12,171 INFO L480 AbstractCegarLoop]: Abstraction has 28 states and 88 transitions. [2019-01-31 14:41:12,171 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:41:12,171 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 88 transitions. [2019-01-31 14:41:12,171 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:41:12,171 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:41:12,171 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:41:12,172 INFO L423 AbstractCegarLoop]: === Iteration 10 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:41:12,172 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:41:12,172 INFO L82 PathProgramCache]: Analyzing trace with hash 929928, now seen corresponding path program 1 times [2019-01-31 14:41:12,172 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:41:12,173 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:41:12,173 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:41:12,173 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:41:12,173 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:41:12,180 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:41:12,283 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-31 14:41:12,284 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-31 14:41:12,285 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-31 14:41:12,285 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-31 14:41:12,285 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:41:12,286 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:41:12,286 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:41:12,286 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-31 14:41:12,286 INFO L207 CegarAbsIntRunner]: [0], [6], [20], [21] [2019-01-31 14:41:12,287 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:41:12,287 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:41:12,309 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:41:12,309 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-31 14:41:12,309 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:41:12,310 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:41:12,310 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:41:12,310 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:41:12,318 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:41:12,318 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:41:12,339 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:41:12,349 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:41:12,350 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:41:12,377 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-31 14:41:12,432 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:12,433 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-31 14:41:12,446 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:12,447 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:12,448 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-31 14:41:12,474 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:12,479 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:12,480 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:12,481 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-31 14:41:12,484 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:41:12,503 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:41:12,513 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:41:12,522 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:41:12,541 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:41:12,541 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-31 14:41:12,547 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:41:12,547 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_49|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_49| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:41:12,548 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:41:12,664 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:12,687 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:12,712 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:12,723 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:12,724 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:12,726 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:12,728 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:12,729 INFO L303 Elim1Store]: Index analysis took 103 ms [2019-01-31 14:41:12,730 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:41:12,739 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:41:12,773 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:41:12,774 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-31 14:41:12,786 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:41:12,787 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_50|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_50| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_50| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_50| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (select |v_#memory_int_50| ULTIMATE.start_main_p2)) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (select |v_#memory_int_50| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:41:12,787 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:41:12,835 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-31 14:41:12,837 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-31 14:41:12,838 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-31 14:41:12,839 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-31 14:41:12,839 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:41:12,839 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:41:12,861 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-31 14:41:12,861 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-31 14:41:12,862 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-31 14:41:12,864 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-31 14:41:12,865 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:41:12,884 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:41:12,884 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-31 14:41:12,884 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:41:12,884 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-31 14:41:12,884 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:41:12,884 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-31 14:41:12,897 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:41:12,897 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-31 14:41:12,898 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-31 14:41:12,898 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-31 14:41:12,898 INFO L87 Difference]: Start difference. First operand 28 states and 88 transitions. Second operand 6 states. [2019-01-31 14:41:13,252 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:41:13,252 INFO L93 Difference]: Finished difference Result 36 states and 98 transitions. [2019-01-31 14:41:13,253 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-31 14:41:13,253 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-31 14:41:13,253 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:41:13,253 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:41:13,253 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 34 transitions. [2019-01-31 14:41:13,254 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:41:13,254 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 34 transitions. [2019-01-31 14:41:13,254 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 34 transitions. [2019-01-31 14:41:13,312 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-31 14:41:13,313 INFO L225 Difference]: With dead ends: 36 [2019-01-31 14:41:13,313 INFO L226 Difference]: Without dead ends: 35 [2019-01-31 14:41:13,314 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-31 14:41:13,314 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 35 states. [2019-01-31 14:41:13,447 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 35 to 29. [2019-01-31 14:41:13,447 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:41:13,447 INFO L82 GeneralOperation]: Start isEquivalent. First operand 35 states. Second operand 29 states. [2019-01-31 14:41:13,447 INFO L74 IsIncluded]: Start isIncluded. First operand 35 states. Second operand 29 states. [2019-01-31 14:41:13,448 INFO L87 Difference]: Start difference. First operand 35 states. Second operand 29 states. [2019-01-31 14:41:13,449 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:41:13,450 INFO L93 Difference]: Finished difference Result 35 states and 96 transitions. [2019-01-31 14:41:13,450 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 96 transitions. [2019-01-31 14:41:13,450 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:41:13,451 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:41:13,451 INFO L74 IsIncluded]: Start isIncluded. First operand 29 states. Second operand 35 states. [2019-01-31 14:41:13,451 INFO L87 Difference]: Start difference. First operand 29 states. Second operand 35 states. [2019-01-31 14:41:13,453 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:41:13,453 INFO L93 Difference]: Finished difference Result 35 states and 96 transitions. [2019-01-31 14:41:13,453 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 96 transitions. [2019-01-31 14:41:13,453 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:41:13,453 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:41:13,453 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:41:13,454 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:41:13,454 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 29 states. [2019-01-31 14:41:13,455 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 29 states to 29 states and 92 transitions. [2019-01-31 14:41:13,455 INFO L78 Accepts]: Start accepts. Automaton has 29 states and 92 transitions. Word has length 4 [2019-01-31 14:41:13,455 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:41:13,455 INFO L480 AbstractCegarLoop]: Abstraction has 29 states and 92 transitions. [2019-01-31 14:41:13,455 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-31 14:41:13,456 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 92 transitions. [2019-01-31 14:41:13,456 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:41:13,456 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:41:13,456 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:41:13,456 INFO L423 AbstractCegarLoop]: === Iteration 11 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:41:13,457 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:41:13,457 INFO L82 PathProgramCache]: Analyzing trace with hash 929616, now seen corresponding path program 1 times [2019-01-31 14:41:13,457 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:41:13,458 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:41:13,458 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:41:13,458 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:41:13,458 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:41:13,464 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:41:13,613 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-31 14:41:13,614 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-31 14:41:13,615 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-31 14:41:13,616 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-31 14:41:13,616 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:41:13,616 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:41:13,617 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:41:13,617 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-31 14:41:13,617 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [19] [2019-01-31 14:41:13,618 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:41:13,619 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:41:13,638 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:41:13,638 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-31 14:41:13,638 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:41:13,638 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:41:13,639 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:41:13,639 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 10 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 10 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:41:13,647 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:41:13,647 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:41:13,651 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:41:13,656 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:41:13,656 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:41:13,676 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-31 14:41:13,681 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:13,682 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-31 14:41:13,736 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:13,737 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:13,738 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-31 14:41:13,750 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:13,752 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:13,753 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:13,755 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-31 14:41:13,769 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:41:13,787 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:41:13,797 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:41:13,806 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:41:13,825 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:41:13,825 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-31 14:41:13,831 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:41:13,832 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_52|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_52| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:41:13,832 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:41:13,881 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:13,882 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:13,883 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:13,884 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:13,885 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:13,886 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:13,887 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:13,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 51 [2019-01-31 14:41:13,892 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:41:13,922 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:41:13,923 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:41:13,927 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:41:13,927 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_53|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_53| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_53| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_53| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_53| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_53| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= .cse0 0))) [2019-01-31 14:41:13,928 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:41:14,030 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:14,032 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:14,033 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:14,033 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:14,035 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:14,036 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:14,037 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:14,038 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:14,039 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:14,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, 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-31 14:41:14,044 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:41:14,081 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:41:14,082 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-31 14:41:14,089 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:41:14,090 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_54|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_54| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (select |v_#memory_int_54| ULTIMATE.start_main_p4) 0) (= (store |v_#memory_int_54| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_54| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (select |v_#memory_int_54| ULTIMATE.start_main_p3)))) [2019-01-31 14:41:14,090 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 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-31 14:41:14,117 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-31 14:41:14,118 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-31 14:41:14,120 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-31 14:41:14,121 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-31 14:41:14,122 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:41:14,122 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:41:14,157 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-31 14:41:14,179 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-31 14:41:14,195 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-31 14:41:14,209 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-31 14:41:14,210 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:41:14,230 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:41:14,231 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:41:14,231 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:41:14,231 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:41:14,231 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:41:14,231 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:41:14,243 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:41:14,244 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:41:14,244 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:41:14,244 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:41:14,244 INFO L87 Difference]: Start difference. First operand 29 states and 92 transitions. Second operand 8 states. [2019-01-31 14:41:15,071 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:41:15,071 INFO L93 Difference]: Finished difference Result 55 states and 140 transitions. [2019-01-31 14:41:15,071 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:41:15,072 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:41:15,072 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:41:15,072 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:41:15,073 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 54 transitions. [2019-01-31 14:41:15,073 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:41:15,073 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 54 transitions. [2019-01-31 14:41:15,073 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 54 transitions. [2019-01-31 14:41:15,146 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 54 edges. 54 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:41:15,147 INFO L225 Difference]: With dead ends: 55 [2019-01-31 14:41:15,147 INFO L226 Difference]: Without dead ends: 54 [2019-01-31 14:41:15,148 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-31 14:41:15,148 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 54 states. [2019-01-31 14:41:15,469 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 54 to 34. [2019-01-31 14:41:15,470 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:41:15,470 INFO L82 GeneralOperation]: Start isEquivalent. First operand 54 states. Second operand 34 states. [2019-01-31 14:41:15,470 INFO L74 IsIncluded]: Start isIncluded. First operand 54 states. Second operand 34 states. [2019-01-31 14:41:15,470 INFO L87 Difference]: Start difference. First operand 54 states. Second operand 34 states. [2019-01-31 14:41:15,472 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:41:15,472 INFO L93 Difference]: Finished difference Result 54 states and 137 transitions. [2019-01-31 14:41:15,472 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 137 transitions. [2019-01-31 14:41:15,473 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:41:15,473 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:41:15,473 INFO L74 IsIncluded]: Start isIncluded. First operand 34 states. Second operand 54 states. [2019-01-31 14:41:15,473 INFO L87 Difference]: Start difference. First operand 34 states. Second operand 54 states. [2019-01-31 14:41:15,475 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:41:15,475 INFO L93 Difference]: Finished difference Result 54 states and 137 transitions. [2019-01-31 14:41:15,475 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 137 transitions. [2019-01-31 14:41:15,476 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:41:15,476 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:41:15,476 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:41:15,476 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:41:15,476 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 34 states. [2019-01-31 14:41:15,477 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 34 states to 34 states and 117 transitions. [2019-01-31 14:41:15,478 INFO L78 Accepts]: Start accepts. Automaton has 34 states and 117 transitions. Word has length 4 [2019-01-31 14:41:15,478 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:41:15,478 INFO L480 AbstractCegarLoop]: Abstraction has 34 states and 117 transitions. [2019-01-31 14:41:15,478 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:41:15,478 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states and 117 transitions. [2019-01-31 14:41:15,478 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:41:15,478 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:41:15,479 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:41:15,479 INFO L423 AbstractCegarLoop]: === Iteration 12 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:41:15,479 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:41:15,479 INFO L82 PathProgramCache]: Analyzing trace with hash 933584, now seen corresponding path program 1 times [2019-01-31 14:41:15,479 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:41:15,480 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:41:15,480 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:41:15,480 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:41:15,480 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:41:15,486 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:41:15,654 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-31 14:41:15,655 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-31 14:41:15,656 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-31 14:41:15,661 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-31 14:41:15,662 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:41:15,662 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:41:15,662 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:41:15,662 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-31 14:41:15,662 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [19] [2019-01-31 14:41:15,663 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:41:15,663 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:41:15,679 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:41:15,679 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-31 14:41:15,679 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:41:15,679 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:41:15,679 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:41:15,679 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 11 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 11 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:41:15,688 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:41:15,688 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:41:15,692 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:41:15,695 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:41:15,695 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:41:15,714 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-31 14:41:15,722 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:15,723 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-31 14:41:15,740 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:15,741 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:15,742 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-31 14:41:15,754 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:15,755 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:15,757 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:15,758 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-31 14:41:15,772 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:41:15,791 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:41:15,801 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:41:15,811 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:41:15,827 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:41:15,827 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-31 14:41:15,832 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:41:15,833 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_57|, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_57| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:41:15,833 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:41:15,881 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:15,882 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:15,883 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:15,885 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:15,886 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:15,887 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:15,888 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:15,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 51 [2019-01-31 14:41:15,903 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:41:15,934 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:41:15,934 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:41:16,453 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:41:16,454 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_58|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_58| ULTIMATE.start_main_p2))) (and (= 0 (select |v_#memory_int_58| ULTIMATE.start_main_p4)) (= (select |v_#memory_int_58| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_58| ULTIMATE.start_main_p1) 0) (= (store |v_#memory_int_58| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:41:16,454 WARN L399 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-31 14:41:16,530 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:16,532 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:16,533 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:16,535 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:16,536 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:16,538 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:16,539 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:16,540 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:16,541 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:16,543 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-31 14:41:16,546 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:41:16,587 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:41:16,588 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-31 14:41:16,600 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:41:16,600 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_59|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_59| ULTIMATE.start_main_p3))) (and (= 0 (select |v_#memory_int_59| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_59| ULTIMATE.start_main_p1)) (= (store |v_#memory_int_59| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 .cse0) (= 0 (+ (select |v_#memory_int_59| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:41:16,601 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:41:16,630 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-31 14:41:16,633 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-31 14:41:16,636 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-31 14:41:16,637 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-31 14:41:16,637 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:41:16,638 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:41:16,677 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-31 14:41:16,678 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-31 14:41:16,680 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-31 14:41:16,682 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-31 14:41:16,682 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:41:16,702 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:41:16,702 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:41:16,702 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:41:16,703 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:41:16,703 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:41:16,703 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:41:16,714 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:41:16,714 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:41:16,714 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:41:16,715 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:41:16,715 INFO L87 Difference]: Start difference. First operand 34 states and 117 transitions. Second operand 8 states. [2019-01-31 14:41:17,599 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:41:17,599 INFO L93 Difference]: Finished difference Result 56 states and 150 transitions. [2019-01-31 14:41:17,599 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:41:17,600 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:41:17,600 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:41:17,600 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:41:17,601 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 47 transitions. [2019-01-31 14:41:17,601 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:41:17,602 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 47 transitions. [2019-01-31 14:41:17,602 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 47 transitions. [2019-01-31 14:41:17,712 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-31 14:41:17,714 INFO L225 Difference]: With dead ends: 56 [2019-01-31 14:41:17,714 INFO L226 Difference]: Without dead ends: 54 [2019-01-31 14:41:17,715 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:41:17,715 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 54 states. [2019-01-31 14:41:17,860 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 54 to 36. [2019-01-31 14:41:17,860 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:41:17,861 INFO L82 GeneralOperation]: Start isEquivalent. First operand 54 states. Second operand 36 states. [2019-01-31 14:41:17,861 INFO L74 IsIncluded]: Start isIncluded. First operand 54 states. Second operand 36 states. [2019-01-31 14:41:17,861 INFO L87 Difference]: Start difference. First operand 54 states. Second operand 36 states. [2019-01-31 14:41:17,863 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:41:17,863 INFO L93 Difference]: Finished difference Result 54 states and 146 transitions. [2019-01-31 14:41:17,863 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 146 transitions. [2019-01-31 14:41:17,864 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:41:17,864 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:41:17,864 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 54 states. [2019-01-31 14:41:17,864 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 54 states. [2019-01-31 14:41:17,866 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:41:17,866 INFO L93 Difference]: Finished difference Result 54 states and 146 transitions. [2019-01-31 14:41:17,866 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 146 transitions. [2019-01-31 14:41:17,866 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:41:17,867 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:41:17,867 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:41:17,867 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:41:17,867 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 36 states. [2019-01-31 14:41:17,868 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 36 states to 36 states and 127 transitions. [2019-01-31 14:41:17,868 INFO L78 Accepts]: Start accepts. Automaton has 36 states and 127 transitions. Word has length 4 [2019-01-31 14:41:17,869 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:41:17,869 INFO L480 AbstractCegarLoop]: Abstraction has 36 states and 127 transitions. [2019-01-31 14:41:17,869 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:41:17,869 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 127 transitions. [2019-01-31 14:41:17,869 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:41:17,869 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:41:17,869 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:41:17,870 INFO L423 AbstractCegarLoop]: === Iteration 13 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:41:17,870 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:41:17,870 INFO L82 PathProgramCache]: Analyzing trace with hash 937616, now seen corresponding path program 1 times [2019-01-31 14:41:17,870 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:41:17,871 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:41:17,871 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:41:17,871 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:41:17,871 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:41:17,877 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:41:17,952 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-31 14:41:17,953 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-31 14:41:17,954 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-31 14:41:17,955 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-31 14:41:17,955 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:41:17,955 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:41:17,955 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:41:17,956 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-31 14:41:17,956 INFO L207 CegarAbsIntRunner]: [0], [14], [20], [21] [2019-01-31 14:41:17,957 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:41:17,957 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:41:17,970 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:41:17,970 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-31 14:41:17,970 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:41:17,971 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:41:17,971 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:41:17,971 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 12 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 12 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:41:17,979 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:41:17,980 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:41:17,983 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:41:17,987 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:41:17,988 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:41:18,007 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-31 14:41:18,015 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-31 14:41:18,030 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:18,031 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-31 14:41:18,045 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:18,046 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:18,047 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-31 14:41:18,053 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:41:18,066 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:41:18,075 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:41:18,084 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:41:18,098 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:41:18,099 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:22, output treesize:27 [2019-01-31 14:41:18,104 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:41:18,104 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_62|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_62| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:41:18,104 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:41:18,155 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:18,156 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:18,156 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:18,157 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:18,158 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 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-31 14:41:18,160 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:41:18,180 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:41:18,180 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:32, output treesize:22 [2019-01-31 14:41:25,961 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:41:25,962 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_63|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_63| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= |#memory_int| (store |v_#memory_int_63| ULTIMATE.start_main_p3 (+ .cse0 1))) (= (select |v_#memory_int_63| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_63| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:41:25,962 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:41:26,010 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-31 14:41:26,012 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-31 14:41:26,026 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-31 14:41:26,027 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-31 14:41:26,027 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:41:26,028 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:41:26,057 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-31 14:41:26,059 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-31 14:41:26,060 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-31 14:41:26,062 INFO L273 TraceCheckUtils]: 0: Hoare triple {2034#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {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-31 14:41:26,062 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:41:26,081 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:41:26,081 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-31 14:41:26,081 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:41:26,081 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-31 14:41:26,081 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:41:26,082 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-31 14:41:26,101 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:41:26,101 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-31 14:41:26,101 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-31 14:41:26,101 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-31 14:41:26,101 INFO L87 Difference]: Start difference. First operand 36 states and 127 transitions. Second operand 6 states. [2019-01-31 14:41:26,506 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:41:26,506 INFO L93 Difference]: Finished difference Result 48 states and 142 transitions. [2019-01-31 14:41:26,507 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-31 14:41:26,507 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-31 14:41:26,507 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:41:26,507 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:41:26,508 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 36 transitions. [2019-01-31 14:41:26,508 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:41:26,508 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 36 transitions. [2019-01-31 14:41:26,508 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 36 transitions. [2019-01-31 14:41:26,576 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-31 14:41:26,577 INFO L225 Difference]: With dead ends: 48 [2019-01-31 14:41:26,577 INFO L226 Difference]: Without dead ends: 47 [2019-01-31 14:41:26,578 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-31 14:41:26,578 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 47 states. [2019-01-31 14:41:26,750 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 47 to 36. [2019-01-31 14:41:26,750 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:41:26,751 INFO L82 GeneralOperation]: Start isEquivalent. First operand 47 states. Second operand 36 states. [2019-01-31 14:41:26,751 INFO L74 IsIncluded]: Start isIncluded. First operand 47 states. Second operand 36 states. [2019-01-31 14:41:26,751 INFO L87 Difference]: Start difference. First operand 47 states. Second operand 36 states. [2019-01-31 14:41:26,753 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:41:26,754 INFO L93 Difference]: Finished difference Result 47 states and 140 transitions. [2019-01-31 14:41:26,754 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 140 transitions. [2019-01-31 14:41:26,754 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:41:26,754 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:41:26,754 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 47 states. [2019-01-31 14:41:26,754 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 47 states. [2019-01-31 14:41:26,756 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:41:26,756 INFO L93 Difference]: Finished difference Result 47 states and 140 transitions. [2019-01-31 14:41:26,756 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 140 transitions. [2019-01-31 14:41:26,757 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:41:26,757 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:41:26,757 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:41:26,757 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:41:26,757 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 36 states. [2019-01-31 14:41:26,758 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 36 states to 36 states and 127 transitions. [2019-01-31 14:41:26,759 INFO L78 Accepts]: Start accepts. Automaton has 36 states and 127 transitions. Word has length 4 [2019-01-31 14:41:26,759 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:41:26,759 INFO L480 AbstractCegarLoop]: Abstraction has 36 states and 127 transitions. [2019-01-31 14:41:26,759 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-31 14:41:26,759 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 127 transitions. [2019-01-31 14:41:26,759 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:41:26,759 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:41:26,759 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:41:26,760 INFO L423 AbstractCegarLoop]: === Iteration 14 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:41:26,760 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:41:26,760 INFO L82 PathProgramCache]: Analyzing trace with hash 29112214, now seen corresponding path program 1 times [2019-01-31 14:41:26,760 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:41:26,761 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:41:26,761 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:41:26,761 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:41:26,761 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:41:26,767 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:41:27,156 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-31 14:41:27,157 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-31 14:41:27,158 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-31 14:41:27,159 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-31 14:41:27,159 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-31 14:41:27,160 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:41:27,160 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:41:27,160 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:41:27,160 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:41:27,160 INFO L207 CegarAbsIntRunner]: [0], [6], [16], [20], [21] [2019-01-31 14:41:27,161 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:41:27,161 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:41:27,175 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:41:27,175 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-31 14:41:27,175 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:41:27,176 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:41:27,176 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:41:27,176 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 13 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 13 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:41:27,187 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:41:27,188 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:41:27,206 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:41:27,222 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:41:27,223 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:41:27,294 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-31 14:41:27,301 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:27,302 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-31 14:41:27,313 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:27,315 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:27,315 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-31 14:41:27,338 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:27,340 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:27,341 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:27,342 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-31 14:41:27,352 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:41:27,389 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:41:27,399 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:41:27,409 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:41:27,427 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:41:27,427 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-31 14:41:27,434 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:41:27,434 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_65|, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_65| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:41:27,434 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:41:27,486 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:27,487 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:27,488 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:27,489 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:27,491 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:27,492 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:27,493 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:27,494 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-31 14:41:27,498 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:41:27,527 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:41:27,527 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:41:28,646 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:41:28,646 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_66|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_66| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_66| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_66| ULTIMATE.start_main_p3) 0) (= (store |v_#memory_int_66| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_66| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:41:28,646 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (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-31 14:41:28,725 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:28,727 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:28,728 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:28,729 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:28,731 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:28,732 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:28,733 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:28,734 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:28,735 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:28,737 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-31 14:41:28,747 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:41:28,779 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:41:28,779 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-31 14:41:29,113 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:41:29,114 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_67|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_67| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (select |v_#memory_int_67| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_67| ULTIMATE.start_main_p2) 0) (= (store |v_#memory_int_67| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (+ (select |v_#memory_int_67| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:41:29,114 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:41:29,155 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-31 14:41:29,157 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-31 14:41:29,160 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-31 14:41:29,161 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-31 14:41:29,161 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-31 14:41:29,162 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:41:29,162 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:41:29,202 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-31 14:41:29,202 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-31 14:41:29,204 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-31 14:41:29,205 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-31 14:41:29,207 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-31 14:41:29,207 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:41:29,227 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:41:29,227 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:41:29,227 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:41:29,228 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:41:29,228 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:41:29,228 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:41:29,245 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:41:29,245 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:41:29,246 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:41:29,246 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:41:29,246 INFO L87 Difference]: Start difference. First operand 36 states and 127 transitions. Second operand 8 states. [2019-01-31 14:41:29,966 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:41:29,967 INFO L93 Difference]: Finished difference Result 56 states and 161 transitions. [2019-01-31 14:41:29,967 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:41:29,967 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:41:29,967 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:41:29,967 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:41:29,968 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2019-01-31 14:41:29,968 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:41:29,968 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2019-01-31 14:41:29,968 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 44 transitions. [2019-01-31 14:41:30,037 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-31 14:41:30,038 INFO L225 Difference]: With dead ends: 56 [2019-01-31 14:41:30,039 INFO L226 Difference]: Without dead ends: 55 [2019-01-31 14:41:30,039 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 2 SyntacticMatches, 1 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:41:30,039 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 55 states. [2019-01-31 14:41:30,226 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 55 to 39. [2019-01-31 14:41:30,226 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:41:30,226 INFO L82 GeneralOperation]: Start isEquivalent. First operand 55 states. Second operand 39 states. [2019-01-31 14:41:30,226 INFO L74 IsIncluded]: Start isIncluded. First operand 55 states. Second operand 39 states. [2019-01-31 14:41:30,226 INFO L87 Difference]: Start difference. First operand 55 states. Second operand 39 states. [2019-01-31 14:41:30,228 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:41:30,228 INFO L93 Difference]: Finished difference Result 55 states and 159 transitions. [2019-01-31 14:41:30,229 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 159 transitions. [2019-01-31 14:41:30,229 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:41:30,229 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:41:30,229 INFO L74 IsIncluded]: Start isIncluded. First operand 39 states. Second operand 55 states. [2019-01-31 14:41:30,229 INFO L87 Difference]: Start difference. First operand 39 states. Second operand 55 states. [2019-01-31 14:41:30,231 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:41:30,231 INFO L93 Difference]: Finished difference Result 55 states and 159 transitions. [2019-01-31 14:41:30,231 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 159 transitions. [2019-01-31 14:41:30,231 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:41:30,232 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:41:30,232 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:41:30,232 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:41:30,232 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 39 states. [2019-01-31 14:41:30,233 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 39 states to 39 states and 142 transitions. [2019-01-31 14:41:30,234 INFO L78 Accepts]: Start accepts. Automaton has 39 states and 142 transitions. Word has length 5 [2019-01-31 14:41:30,234 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:41:30,234 INFO L480 AbstractCegarLoop]: Abstraction has 39 states and 142 transitions. [2019-01-31 14:41:30,234 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:41:30,234 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 142 transitions. [2019-01-31 14:41:30,234 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:41:30,234 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:41:30,235 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:41:30,235 INFO L423 AbstractCegarLoop]: === Iteration 15 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:41:30,235 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:41:30,235 INFO L82 PathProgramCache]: Analyzing trace with hash 29111902, now seen corresponding path program 1 times [2019-01-31 14:41:30,235 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:41:30,236 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:41:30,236 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:41:30,236 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:41:30,236 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:41:30,241 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:41:30,453 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-31 14:41:30,454 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-31 14:41:30,455 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-31 14:41:30,456 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-31 14:41:30,456 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-31 14:41:30,456 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:41:30,456 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:41:30,457 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:41:30,457 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:41:30,457 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [16], [19] [2019-01-31 14:41:30,458 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:41:30,458 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:41:30,473 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:41:30,474 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-31 14:41:30,474 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:41:30,474 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:41:30,474 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:41:30,474 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 14 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 14 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:41:30,486 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:41:30,486 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:41:30,491 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:41:30,497 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:41:30,497 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:41:30,517 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-31 14:41:30,524 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:30,524 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-31 14:41:30,547 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:30,549 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:30,550 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-31 14:41:30,611 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:30,613 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:30,615 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:30,616 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-31 14:41:30,621 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:41:30,650 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:41:30,667 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:41:30,678 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:41:30,701 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:41:30,702 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-31 14:41:30,707 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:41:30,708 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_70|, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= |#memory_int| (store (store (store (store |v_#memory_int_70| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0))) [2019-01-31 14:41:30,708 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:41:30,792 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:30,794 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:30,796 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:30,798 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:30,800 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:30,804 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:30,807 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:30,808 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-31 14:41:30,810 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:41:30,854 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:41:30,855 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:41:31,571 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:41:31,572 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_71|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_71| ULTIMATE.start_main_p4))) (and (= .cse0 0) (= 0 (select |v_#memory_int_71| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_71| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (select |v_#memory_int_71| ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_71| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:41:31,572 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (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-31 14:41:31,709 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:31,710 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:31,711 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:31,712 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:31,714 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:31,715 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:31,716 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:31,717 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:31,718 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:31,719 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-31 14:41:31,722 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:41:31,756 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:41:31,756 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-31 14:41:31,762 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:41:31,762 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_72|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_72| ULTIMATE.start_main_p1))) (and (= (store |v_#memory_int_72| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_72| ULTIMATE.start_main_p3)) (= (+ (select |v_#memory_int_72| ULTIMATE.start_main_p4) 1) 0) (= 0 .cse0) (= 0 (select |v_#memory_int_72| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:41:31,762 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:41:31,827 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:31,828 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:31,829 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:31,831 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:31,832 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:31,833 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:31,835 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:31,836 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:31,837 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:41:31,838 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:31,839 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-31 14:41:31,849 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:41:31,894 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:41:31,894 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:30 [2019-01-31 14:41:31,903 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:41:31,903 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_73|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_73| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_73| ULTIMATE.start_main_p4) 1)) (= (select |v_#memory_int_73| ULTIMATE.start_main_p1) 1) (= (store |v_#memory_int_73| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_73| ULTIMATE.start_main_p3)) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:41:31,903 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 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-31 14:41:31,939 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-31 14:41:31,942 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-31 14:41:31,945 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-31 14:41:31,948 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-31 14:41:31,949 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-31 14:41:31,950 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:41:31,950 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:41:32,024 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-31 14:41:32,025 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-31 14:41:32,026 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-31 14:41:32,037 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-31 14:41:32,039 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-31 14:41:32,039 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-31 14:41:32,058 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:41:32,058 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-31 14:41:32,058 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:41:32,058 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-31 14:41:32,059 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:41:32,059 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:41:32,074 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:41:32,074 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:41:32,074 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:41:32,074 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=70, Invalid=112, Unknown=0, NotChecked=0, Total=182 [2019-01-31 14:41:32,075 INFO L87 Difference]: Start difference. First operand 39 states and 142 transitions. Second operand 10 states. [2019-01-31 14:41:33,396 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:41:33,397 INFO L93 Difference]: Finished difference Result 76 states and 212 transitions. [2019-01-31 14:41:33,397 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-31 14:41:33,397 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-31 14:41:33,397 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:41:33,397 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:41:33,398 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 64 transitions. [2019-01-31 14:41:33,398 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:41:33,399 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 64 transitions. [2019-01-31 14:41:33,399 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 64 transitions. [2019-01-31 14:41:33,634 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 64 edges. 64 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:41:33,636 INFO L225 Difference]: With dead ends: 76 [2019-01-31 14:41:33,636 INFO L226 Difference]: Without dead ends: 75 [2019-01-31 14:41:33,637 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-31 14:41:33,637 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 75 states. [2019-01-31 14:41:33,858 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 75 to 41. [2019-01-31 14:41:33,858 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:41:33,858 INFO L82 GeneralOperation]: Start isEquivalent. First operand 75 states. Second operand 41 states. [2019-01-31 14:41:33,858 INFO L74 IsIncluded]: Start isIncluded. First operand 75 states. Second operand 41 states. [2019-01-31 14:41:33,858 INFO L87 Difference]: Start difference. First operand 75 states. Second operand 41 states. [2019-01-31 14:41:33,862 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:41:33,862 INFO L93 Difference]: Finished difference Result 75 states and 209 transitions. [2019-01-31 14:41:33,862 INFO L276 IsEmpty]: Start isEmpty. Operand 75 states and 209 transitions. [2019-01-31 14:41:33,863 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:41:33,863 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:41:33,863 INFO L74 IsIncluded]: Start isIncluded. First operand 41 states. Second operand 75 states. [2019-01-31 14:41:33,863 INFO L87 Difference]: Start difference. First operand 41 states. Second operand 75 states. [2019-01-31 14:41:33,865 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:41:33,866 INFO L93 Difference]: Finished difference Result 75 states and 209 transitions. [2019-01-31 14:41:33,866 INFO L276 IsEmpty]: Start isEmpty. Operand 75 states and 209 transitions. [2019-01-31 14:41:33,866 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:41:33,866 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:41:33,866 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:41:33,866 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:41:33,867 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 41 states. [2019-01-31 14:41:33,868 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 41 states to 41 states and 152 transitions. [2019-01-31 14:41:33,868 INFO L78 Accepts]: Start accepts. Automaton has 41 states and 152 transitions. Word has length 5 [2019-01-31 14:41:33,868 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:41:33,868 INFO L480 AbstractCegarLoop]: Abstraction has 41 states and 152 transitions. [2019-01-31 14:41:33,869 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:41:33,869 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 152 transitions. [2019-01-31 14:41:33,869 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:41:33,869 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:41:33,869 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:41:33,870 INFO L423 AbstractCegarLoop]: === Iteration 16 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:41:33,870 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:41:33,870 INFO L82 PathProgramCache]: Analyzing trace with hash 29115870, now seen corresponding path program 1 times [2019-01-31 14:41:33,870 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:41:33,871 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:41:33,871 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:41:33,871 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:41:33,871 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:41:33,878 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:41:34,087 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-31 14:41:34,088 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-31 14:41:34,089 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-31 14:41:34,090 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-31 14:41:34,091 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-31 14:41:34,091 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:41:34,091 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:41:34,092 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:41:34,092 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:41:34,092 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [16], [19] [2019-01-31 14:41:34,093 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:41:34,094 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:41:34,109 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:41:34,110 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-31 14:41:34,110 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:41:34,110 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:41:34,110 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:41:34,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 15 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 15 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:41:34,119 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:41:34,119 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:41:34,123 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:41:34,128 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:41:34,129 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:41:34,147 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-31 14:41:34,153 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:34,154 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-31 14:41:34,169 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:34,170 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:34,171 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-31 14:41:34,206 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:34,208 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:34,209 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:34,210 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-31 14:41:34,213 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:41:34,233 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:41:34,242 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:41:34,255 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:41:34,269 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:41:34,269 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-31 14:41:34,273 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:41:34,274 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_77|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_77| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:41:34,274 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:41:34,319 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:34,321 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:34,330 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:34,331 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:34,332 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:34,333 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:34,333 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:34,334 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-31 14:41:34,337 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:41:34,366 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:41:34,366 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-31 14:41:34,677 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:41:34,677 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_78|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_78| ULTIMATE.start_main_p4))) (and (= (store |v_#memory_int_78| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_78| ULTIMATE.start_main_p2) 0) (= .cse0 0) (= (select |v_#memory_int_78| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_78| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:41:34,677 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (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-31 14:41:35,290 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:35,311 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:35,336 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:35,358 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:35,360 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:35,362 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:35,365 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:35,365 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:41:35,365 INFO L303 Elim1Store]: Index analysis took 115 ms [2019-01-31 14:41:35,366 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 60 [2019-01-31 14:41:35,368 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:41:35,400 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:41:35,401 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:30 [2019-01-31 14:41:35,436 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:41:35,437 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_79|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_79| ULTIMATE.start_main_p2))) (and (= |#memory_int| (store |v_#memory_int_79| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_79| ULTIMATE.start_main_p4) 1)) (= (select |v_#memory_int_79| ULTIMATE.start_main_p1) 0) (= .cse0 0) (= (select |v_#memory_int_79| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:41:35,437 WARN L399 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-31 14:41:35,491 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:35,492 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:35,494 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:35,495 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:35,496 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:35,497 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:35,499 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:35,500 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:35,501 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:35,502 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-31 14:41:35,512 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:41:35,550 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:41:35,551 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-01-31 14:41:45,586 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:41:45,586 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_80|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_80| ULTIMATE.start_main_p3))) (and (= 0 (+ (select |v_#memory_int_80| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= |#memory_int| (store |v_#memory_int_80| ULTIMATE.start_main_p3 (+ .cse0 1))) (= (+ (select |v_#memory_int_80| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |v_#memory_int_80| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:41:45,586 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-31 14:41:45,626 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-31 14:41:45,628 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-31 14:41:45,630 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-31 14:41:45,633 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-31 14:41:45,640 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-31 14:41:45,641 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:41:45,641 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:41:45,704 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-31 14:41:45,705 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-31 14:41:45,707 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-31 14:41:45,709 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-31 14:41:45,711 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-31 14:41:45,712 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:41:45,731 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:41:45,731 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-31 14:41:45,731 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:41:45,731 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-31 14:41:45,731 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:41:45,731 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:41:45,746 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:41:45,746 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:41:45,746 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:41:45,747 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=67, Invalid=115, Unknown=0, NotChecked=0, Total=182 [2019-01-31 14:41:45,747 INFO L87 Difference]: Start difference. First operand 41 states and 152 transitions. Second operand 10 states. [2019-01-31 14:41:47,049 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:41:47,050 INFO L93 Difference]: Finished difference Result 67 states and 187 transitions. [2019-01-31 14:41:47,050 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:41:47,050 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-31 14:41:47,050 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:41:47,050 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:41:47,051 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 55 transitions. [2019-01-31 14:41:47,051 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:41:47,051 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 55 transitions. [2019-01-31 14:41:47,051 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 55 transitions. [2019-01-31 14:41:47,143 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-31 14:41:47,145 INFO L225 Difference]: With dead ends: 67 [2019-01-31 14:41:47,145 INFO L226 Difference]: Without dead ends: 65 [2019-01-31 14:41:47,146 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 62 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=100, Invalid=172, Unknown=0, NotChecked=0, Total=272 [2019-01-31 14:41:47,146 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 65 states. [2019-01-31 14:41:47,360 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 65 to 39. [2019-01-31 14:41:47,361 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:41:47,361 INFO L82 GeneralOperation]: Start isEquivalent. First operand 65 states. Second operand 39 states. [2019-01-31 14:41:47,361 INFO L74 IsIncluded]: Start isIncluded. First operand 65 states. Second operand 39 states. [2019-01-31 14:41:47,361 INFO L87 Difference]: Start difference. First operand 65 states. Second operand 39 states. [2019-01-31 14:41:47,364 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:41:47,364 INFO L93 Difference]: Finished difference Result 65 states and 184 transitions. [2019-01-31 14:41:47,364 INFO L276 IsEmpty]: Start isEmpty. Operand 65 states and 184 transitions. [2019-01-31 14:41:47,364 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:41:47,364 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:41:47,365 INFO L74 IsIncluded]: Start isIncluded. First operand 39 states. Second operand 65 states. [2019-01-31 14:41:47,365 INFO L87 Difference]: Start difference. First operand 39 states. Second operand 65 states. [2019-01-31 14:41:47,367 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:41:47,367 INFO L93 Difference]: Finished difference Result 65 states and 184 transitions. [2019-01-31 14:41:47,367 INFO L276 IsEmpty]: Start isEmpty. Operand 65 states and 184 transitions. [2019-01-31 14:41:47,367 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:41:47,368 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:41:47,368 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:41:47,368 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:41:47,368 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 39 states. [2019-01-31 14:41:47,369 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 39 states to 39 states and 142 transitions. [2019-01-31 14:41:47,369 INFO L78 Accepts]: Start accepts. Automaton has 39 states and 142 transitions. Word has length 5 [2019-01-31 14:41:47,370 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:41:47,370 INFO L480 AbstractCegarLoop]: Abstraction has 39 states and 142 transitions. [2019-01-31 14:41:47,370 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:41:47,370 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 142 transitions. [2019-01-31 14:41:47,370 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:41:47,370 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:41:47,371 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:41:47,371 INFO L423 AbstractCegarLoop]: === Iteration 17 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:41:47,371 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:41:47,371 INFO L82 PathProgramCache]: Analyzing trace with hash 29119902, now seen corresponding path program 1 times [2019-01-31 14:41:47,371 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:41:47,372 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:41:47,372 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:41:47,372 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:41:47,372 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:41:47,377 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:41:47,771 WARN L181 SmtUtils]: Spent 136.00 ms on a formula simplification. DAG size of input: 29 DAG size of output: 17 [2019-01-31 14:41:47,813 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-31 14:41:47,815 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-31 14:41:47,815 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-31 14:41:47,816 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-31 14:41:47,816 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-31 14:41:47,817 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:41:47,817 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:41:47,817 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:41:47,817 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:41:47,817 INFO L207 CegarAbsIntRunner]: [0], [14], [16], [20], [21] [2019-01-31 14:41:47,818 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:41:47,818 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:41:47,829 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:41:47,830 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-31 14:41:47,830 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:41:47,830 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:41:47,830 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:41:47,830 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 16 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 16 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:41:47,842 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:41:47,842 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:41:47,846 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:41:47,849 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:41:47,849 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:41:47,864 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-31 14:41:47,873 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-31 14:41:47,885 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:47,886 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-31 14:41:47,900 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:47,901 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:47,902 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-31 14:41:47,905 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:41:47,917 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:41:47,928 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:41:47,937 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:41:47,953 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:41:47,953 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:22, output treesize:27 [2019-01-31 14:41:47,958 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:41:47,959 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_84|, ULTIMATE.start_main_p1]. (and (= (store (store (store (store |v_#memory_int_84| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:41:47,959 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:41:48,016 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:48,018 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:48,019 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:48,021 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:48,022 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 28 [2019-01-31 14:41:48,025 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:41:48,045 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:41:48,046 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-31 14:41:58,223 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:41:58,224 WARN L398 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-31 14:41:58,224 WARN L399 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-31 14:41:58,300 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:58,301 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:58,303 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:58,304 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:58,305 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:58,306 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:41:58,308 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 50 [2019-01-31 14:41:58,311 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:41:58,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-31 14:41:58,343 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:34, output treesize:24 [2019-01-31 14:42:08,356 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:08,357 WARN L398 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-31 14:42:08,357 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (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-31 14:42:08,413 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-31 14:42:08,414 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-31 14:42:08,415 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-31 14:42:08,416 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-31 14:42:08,417 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-31 14:42:08,418 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:08,418 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:42:08,459 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-31 14:42:08,460 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-31 14:42:08,461 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-31 14:42:08,462 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-31 14:42:08,464 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-31 14:42:08,465 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:08,485 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:42:08,485 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:42:08,486 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:42:08,486 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:42:08,486 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:42:08,486 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:42:08,501 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:42:08,502 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:42:08,502 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:42:08,502 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:42:08,502 INFO L87 Difference]: Start difference. First operand 39 states and 142 transitions. Second operand 8 states. [2019-01-31 14:42:09,273 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:09,273 INFO L93 Difference]: Finished difference Result 58 states and 171 transitions. [2019-01-31 14:42:09,273 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:42:09,273 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:42:09,274 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:42:09,274 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:42:09,274 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2019-01-31 14:42:09,274 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:42:09,275 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2019-01-31 14:42:09,275 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 44 transitions. [2019-01-31 14:42:09,409 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-31 14:42:09,410 INFO L225 Difference]: With dead ends: 58 [2019-01-31 14:42:09,411 INFO L226 Difference]: Without dead ends: 57 [2019-01-31 14:42:09,411 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:42:09,412 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 57 states. [2019-01-31 14:42:09,674 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 57 to 41. [2019-01-31 14:42:09,674 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:42:09,675 INFO L82 GeneralOperation]: Start isEquivalent. First operand 57 states. Second operand 41 states. [2019-01-31 14:42:09,675 INFO L74 IsIncluded]: Start isIncluded. First operand 57 states. Second operand 41 states. [2019-01-31 14:42:09,675 INFO L87 Difference]: Start difference. First operand 57 states. Second operand 41 states. [2019-01-31 14:42:09,677 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:09,677 INFO L93 Difference]: Finished difference Result 57 states and 169 transitions. [2019-01-31 14:42:09,677 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 169 transitions. [2019-01-31 14:42:09,677 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:09,677 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:09,677 INFO L74 IsIncluded]: Start isIncluded. First operand 41 states. Second operand 57 states. [2019-01-31 14:42:09,678 INFO L87 Difference]: Start difference. First operand 41 states. Second operand 57 states. [2019-01-31 14:42:09,679 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:09,679 INFO L93 Difference]: Finished difference Result 57 states and 169 transitions. [2019-01-31 14:42:09,679 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 169 transitions. [2019-01-31 14:42:09,679 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:09,680 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:09,680 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:42:09,680 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:42:09,680 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 41 states. [2019-01-31 14:42:09,681 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 41 states to 41 states and 152 transitions. [2019-01-31 14:42:09,681 INFO L78 Accepts]: Start accepts. Automaton has 41 states and 152 transitions. Word has length 5 [2019-01-31 14:42:09,682 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:42:09,682 INFO L480 AbstractCegarLoop]: Abstraction has 41 states and 152 transitions. [2019-01-31 14:42:09,682 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:42:09,682 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 152 transitions. [2019-01-31 14:42:09,682 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:42:09,682 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:42:09,682 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:42:09,683 INFO L423 AbstractCegarLoop]: === Iteration 18 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:42:09,683 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:42:09,683 INFO L82 PathProgramCache]: Analyzing trace with hash 28823602, now seen corresponding path program 2 times [2019-01-31 14:42:09,683 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:42:09,684 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:09,684 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:42:09,684 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:09,684 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:42:09,689 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:09,873 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-31 14:42:09,874 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-31 14:42:09,875 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-31 14:42:09,876 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-31 14:42:09,882 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-31 14:42:09,882 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:09,882 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:42:09,883 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:42:09,883 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-31 14:42:09,883 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-31 14:42:09,883 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:42:09,883 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 17 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 17 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:42:09,893 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-31 14:42:09,893 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-31 14:42:09,900 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-31 14:42:09,900 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-31 14:42:09,903 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:09,903 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:42:09,932 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-31 14:42:09,940 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:09,941 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-31 14:42:09,981 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:09,982 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:09,983 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-31 14:42:10,003 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:10,004 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:10,005 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:10,007 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-31 14:42:10,010 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:10,030 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:10,041 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:10,051 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:10,084 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:10,084 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-31 14:42:10,089 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:10,089 WARN L398 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-31 14:42:10,089 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:42:10,144 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:10,145 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:10,146 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:10,148 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:10,149 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:10,150 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:10,151 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:10,152 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:42:10,157 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:10,191 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:10,192 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-31 14:42:10,207 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:10,207 WARN L398 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-31 14:42:10,207 WARN L399 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-31 14:42:10,262 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:10,264 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:10,265 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:10,266 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:10,267 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:10,269 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:10,272 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:10,273 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:10,274 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:10,274 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 57 [2019-01-31 14:42:10,278 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:10,313 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:10,313 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:42:10,322 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:10,322 WARN L398 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-31 14:42:10,322 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (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-31 14:42:10,386 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:10,388 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:10,389 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:10,390 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:10,391 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:10,392 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:10,394 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:10,395 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:10,395 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:42:10,396 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:10,397 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-31 14:42:10,404 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:10,443 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:10,444 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:30 [2019-01-31 14:42:10,450 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:10,451 WARN L398 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-31 14:42:10,451 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 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-31 14:42:10,482 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-31 14:42:10,485 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-31 14:42:10,487 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-31 14:42:10,490 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-31 14:42:10,491 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-31 14:42:10,492 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:10,492 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:42:10,560 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-31 14:42:10,561 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-31 14:42:10,563 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-31 14:42:10,564 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-31 14:42:10,567 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-31 14:42:10,567 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:10,587 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:42:10,587 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-31 14:42:10,587 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:42:10,587 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-31 14:42:10,587 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:42:10,587 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:42:10,605 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:42:10,605 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:42:10,605 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:42:10,605 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=70, Invalid=112, Unknown=0, NotChecked=0, Total=182 [2019-01-31 14:42:10,606 INFO L87 Difference]: Start difference. First operand 41 states and 152 transitions. Second operand 10 states. [2019-01-31 14:42:11,999 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:12,000 INFO L93 Difference]: Finished difference Result 71 states and 199 transitions. [2019-01-31 14:42:12,000 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-31 14:42:12,000 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-31 14:42:12,000 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:42:12,000 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:42:12,001 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 63 transitions. [2019-01-31 14:42:12,001 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:42:12,001 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 63 transitions. [2019-01-31 14:42:12,001 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 63 transitions. [2019-01-31 14:42:12,097 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 63 edges. 63 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:42:12,099 INFO L225 Difference]: With dead ends: 71 [2019-01-31 14:42:12,099 INFO L226 Difference]: Without dead ends: 70 [2019-01-31 14:42:12,100 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-31 14:42:12,100 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 70 states. [2019-01-31 14:42:12,337 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 70 to 30. [2019-01-31 14:42:12,338 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:42:12,338 INFO L82 GeneralOperation]: Start isEquivalent. First operand 70 states. Second operand 30 states. [2019-01-31 14:42:12,338 INFO L74 IsIncluded]: Start isIncluded. First operand 70 states. Second operand 30 states. [2019-01-31 14:42:12,338 INFO L87 Difference]: Start difference. First operand 70 states. Second operand 30 states. [2019-01-31 14:42:12,340 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:12,341 INFO L93 Difference]: Finished difference Result 70 states and 196 transitions. [2019-01-31 14:42:12,341 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 196 transitions. [2019-01-31 14:42:12,341 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:12,341 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:12,342 INFO L74 IsIncluded]: Start isIncluded. First operand 30 states. Second operand 70 states. [2019-01-31 14:42:12,342 INFO L87 Difference]: Start difference. First operand 30 states. Second operand 70 states. [2019-01-31 14:42:12,343 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:12,343 INFO L93 Difference]: Finished difference Result 70 states and 196 transitions. [2019-01-31 14:42:12,343 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 196 transitions. [2019-01-31 14:42:12,344 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:12,344 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:12,344 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:42:12,344 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:42:12,344 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 30 states. [2019-01-31 14:42:12,345 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 30 states to 30 states and 97 transitions. [2019-01-31 14:42:12,345 INFO L78 Accepts]: Start accepts. Automaton has 30 states and 97 transitions. Word has length 5 [2019-01-31 14:42:12,345 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:42:12,345 INFO L480 AbstractCegarLoop]: Abstraction has 30 states and 97 transitions. [2019-01-31 14:42:12,345 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:42:12,345 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 97 transitions. [2019-01-31 14:42:12,346 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:42:12,346 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:42:12,346 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:42:12,346 INFO L423 AbstractCegarLoop]: === Iteration 19 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:42:12,346 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:42:12,346 INFO L82 PathProgramCache]: Analyzing trace with hash 28827822, now seen corresponding path program 1 times [2019-01-31 14:42:12,346 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:42:12,347 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:12,347 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-31 14:42:12,347 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:12,348 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:42:12,351 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:12,591 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-31 14:42:12,592 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-31 14:42:12,600 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-31 14:42:12,600 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-31 14:42:12,601 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-31 14:42:12,601 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:42:12,601 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-01-31 14:42:12,601 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2019-01-31 14:42:12,601 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-31 14:42:12,602 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-01-31 14:42:12,602 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:42:12,602 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-31 14:42:12,607 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 5 edges. 5 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:42:12,607 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-31 14:42:12,607 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-31 14:42:12,607 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2019-01-31 14:42:12,607 INFO L87 Difference]: Start difference. First operand 30 states and 97 transitions. Second operand 4 states. [2019-01-31 14:42:13,234 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:13,234 INFO L93 Difference]: Finished difference Result 36 states and 106 transitions. [2019-01-31 14:42:13,234 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-31 14:42:13,234 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-01-31 14:42:13,235 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:42:13,235 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-31 14:42:13,235 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 21 transitions. [2019-01-31 14:42:13,235 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-31 14:42:13,236 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 21 transitions. [2019-01-31 14:42:13,236 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 21 transitions. [2019-01-31 14:42:13,254 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-31 14:42:13,255 INFO L225 Difference]: With dead ends: 36 [2019-01-31 14:42:13,255 INFO L226 Difference]: Without dead ends: 33 [2019-01-31 14:42:13,255 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-31 14:42:13,255 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 33 states. [2019-01-31 14:42:13,519 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 33 to 29. [2019-01-31 14:42:13,519 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:42:13,519 INFO L82 GeneralOperation]: Start isEquivalent. First operand 33 states. Second operand 29 states. [2019-01-31 14:42:13,520 INFO L74 IsIncluded]: Start isIncluded. First operand 33 states. Second operand 29 states. [2019-01-31 14:42:13,520 INFO L87 Difference]: Start difference. First operand 33 states. Second operand 29 states. [2019-01-31 14:42:13,521 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:13,521 INFO L93 Difference]: Finished difference Result 33 states and 102 transitions. [2019-01-31 14:42:13,521 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 102 transitions. [2019-01-31 14:42:13,522 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:13,522 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:13,522 INFO L74 IsIncluded]: Start isIncluded. First operand 29 states. Second operand 33 states. [2019-01-31 14:42:13,522 INFO L87 Difference]: Start difference. First operand 29 states. Second operand 33 states. [2019-01-31 14:42:13,524 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:13,524 INFO L93 Difference]: Finished difference Result 33 states and 102 transitions. [2019-01-31 14:42:13,524 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 102 transitions. [2019-01-31 14:42:13,524 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:13,524 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:13,525 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:42:13,525 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:42:13,525 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 29 states. [2019-01-31 14:42:13,526 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 29 states to 29 states and 99 transitions. [2019-01-31 14:42:13,526 INFO L78 Accepts]: Start accepts. Automaton has 29 states and 99 transitions. Word has length 5 [2019-01-31 14:42:13,526 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:42:13,526 INFO L480 AbstractCegarLoop]: Abstraction has 29 states and 99 transitions. [2019-01-31 14:42:13,526 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-31 14:42:13,526 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 99 transitions. [2019-01-31 14:42:13,526 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:42:13,527 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:42:13,527 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:42:13,527 INFO L423 AbstractCegarLoop]: === Iteration 20 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:42:13,527 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:42:13,527 INFO L82 PathProgramCache]: Analyzing trace with hash 28818148, now seen corresponding path program 1 times [2019-01-31 14:42:13,527 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:42:13,528 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:13,528 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:42:13,528 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:13,528 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:42:13,533 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:13,794 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-31 14:42:13,795 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-31 14:42:13,796 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-31 14:42:13,797 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-31 14:42:13,797 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-31 14:42:13,798 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:13,798 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:42:13,798 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:42:13,799 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:42:13,799 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [20], [21] [2019-01-31 14:42:13,800 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:42:13,800 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:42:13,817 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:42:13,817 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-31 14:42:13,818 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:42:13,818 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:42:13,818 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:42:13,818 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 18 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 18 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:42:13,835 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:42:13,836 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:42:13,840 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:13,848 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:13,848 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:42:13,876 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-31 14:42:13,882 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:13,883 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-31 14:42:13,892 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:13,894 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:13,895 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-31 14:42:13,907 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:13,909 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:13,910 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:13,911 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-31 14:42:13,914 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:13,933 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:13,942 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:13,952 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:13,970 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:13,970 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-31 14:42:13,977 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:13,977 WARN L398 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-31 14:42:13,977 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:42:14,018 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:14,019 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:14,020 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:14,021 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:14,023 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:14,024 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:14,025 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:14,026 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:42:14,045 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:14,453 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:14,454 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-31 14:42:14,475 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:14,476 WARN L398 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-31 14:42:14,476 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:42:14,543 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:14,544 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:14,545 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:14,546 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:14,548 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:14,549 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:14,550 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:14,551 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:14,552 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:14,553 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 65 [2019-01-31 14:42:14,565 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:14,602 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:14,603 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-31 14:42:14,614 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:14,615 WARN L398 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-31 14:42:14,615 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 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-31 14:42:14,690 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-31 14:42:14,692 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-31 14:42:14,694 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-31 14:42:14,694 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-31 14:42:14,695 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-31 14:42:14,696 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:14,696 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:42:14,721 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-31 14:42:14,721 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-31 14:42:14,722 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-31 14:42:14,723 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-31 14:42:14,725 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-31 14:42:14,726 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:14,745 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:42:14,745 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-01-31 14:42:14,745 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:42:14,745 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:42:14,745 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:42:14,746 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:42:14,761 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:42:14,761 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:42:14,761 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:42:14,761 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=51, Unknown=0, NotChecked=0, Total=90 [2019-01-31 14:42:14,762 INFO L87 Difference]: Start difference. First operand 29 states and 99 transitions. Second operand 8 states. [2019-01-31 14:42:15,591 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:15,591 INFO L93 Difference]: Finished difference Result 44 states and 125 transitions. [2019-01-31 14:42:15,591 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:42:15,591 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:42:15,592 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:42:15,592 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:42:15,592 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 45 transitions. [2019-01-31 14:42:15,592 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:42:15,593 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 45 transitions. [2019-01-31 14:42:15,593 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 45 transitions. [2019-01-31 14:42:15,651 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-31 14:42:15,652 INFO L225 Difference]: With dead ends: 44 [2019-01-31 14:42:15,652 INFO L226 Difference]: Without dead ends: 43 [2019-01-31 14:42:15,653 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 4 SyntacticMatches, 0 SemanticMatches, 9 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 24 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=47, Invalid=63, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:42:15,653 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 43 states. [2019-01-31 14:42:15,946 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 43 to 32. [2019-01-31 14:42:15,946 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:42:15,946 INFO L82 GeneralOperation]: Start isEquivalent. First operand 43 states. Second operand 32 states. [2019-01-31 14:42:15,947 INFO L74 IsIncluded]: Start isIncluded. First operand 43 states. Second operand 32 states. [2019-01-31 14:42:15,947 INFO L87 Difference]: Start difference. First operand 43 states. Second operand 32 states. [2019-01-31 14:42:15,948 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:15,948 INFO L93 Difference]: Finished difference Result 43 states and 123 transitions. [2019-01-31 14:42:15,949 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 123 transitions. [2019-01-31 14:42:15,949 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:15,949 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:15,949 INFO L74 IsIncluded]: Start isIncluded. First operand 32 states. Second operand 43 states. [2019-01-31 14:42:15,950 INFO L87 Difference]: Start difference. First operand 32 states. Second operand 43 states. [2019-01-31 14:42:15,951 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:15,951 INFO L93 Difference]: Finished difference Result 43 states and 123 transitions. [2019-01-31 14:42:15,951 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 123 transitions. [2019-01-31 14:42:15,951 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:15,951 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:15,951 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:42:15,951 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:42:15,952 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 32 states. [2019-01-31 14:42:15,952 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 32 states to 32 states and 114 transitions. [2019-01-31 14:42:15,953 INFO L78 Accepts]: Start accepts. Automaton has 32 states and 114 transitions. Word has length 5 [2019-01-31 14:42:15,953 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:42:15,953 INFO L480 AbstractCegarLoop]: Abstraction has 32 states and 114 transitions. [2019-01-31 14:42:15,953 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:42:15,953 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 114 transitions. [2019-01-31 14:42:15,953 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:42:15,953 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:42:15,953 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:42:15,953 INFO L423 AbstractCegarLoop]: === Iteration 21 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:42:15,954 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:42:15,954 INFO L82 PathProgramCache]: Analyzing trace with hash 28821992, now seen corresponding path program 1 times [2019-01-31 14:42:15,954 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:42:15,954 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:15,954 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:42:15,955 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:15,955 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:42:15,960 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:16,117 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-31 14:42:16,119 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-31 14:42:16,120 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-31 14:42:16,121 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-31 14:42:16,121 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-31 14:42:16,122 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:42:16,122 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:42:16,122 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:42:16,122 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:42:16,123 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [20], [21] [2019-01-31 14:42:16,124 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:42:16,124 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:42:16,151 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:42:16,151 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-31 14:42:16,152 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:42:16,152 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:42:16,152 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:42:16,152 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 19 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 19 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:42:16,162 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:42:16,162 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:42:16,166 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:16,169 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:16,170 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:42:16,203 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-31 14:42:16,210 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:16,211 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-31 14:42:16,221 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:16,223 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:16,224 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-31 14:42:16,251 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:16,252 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:16,253 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:16,254 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-31 14:42:16,258 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:16,277 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:16,288 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:16,298 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:16,315 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:16,315 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-31 14:42:16,319 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:16,319 WARN L398 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-31 14:42:16,320 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:42:16,413 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:16,414 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:16,415 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:16,416 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:16,417 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:16,418 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:16,419 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:16,420 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:42:16,425 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:16,456 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:16,456 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:42:17,105 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:17,105 WARN L398 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-31 14:42:17,105 WARN L399 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-31 14:42:17,165 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:17,167 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:17,168 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:17,169 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:17,171 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:17,172 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:17,174 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:17,175 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:17,176 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:42:17,177 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-31 14:42:17,190 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:17,222 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:17,223 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-31 14:42:17,234 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:17,234 WARN L398 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-31 14:42:17,234 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_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-31 14:42:17,283 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-31 14:42:17,285 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-31 14:42:17,288 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-31 14:42:17,288 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-31 14:42:17,289 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-31 14:42:17,290 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:17,290 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:42:17,329 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-31 14:42:17,330 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-31 14:42:17,330 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-31 14:42:17,332 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-31 14:42:17,333 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-31 14:42:17,334 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:17,352 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:42:17,352 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:42:17,352 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:42:17,352 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:42:17,353 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:42:17,353 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:42:17,369 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:42:17,369 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:42:17,369 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:42:17,369 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=41, Invalid=69, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:42:17,370 INFO L87 Difference]: Start difference. First operand 32 states and 114 transitions. Second operand 8 states. [2019-01-31 14:42:18,349 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:18,349 INFO L93 Difference]: Finished difference Result 49 states and 142 transitions. [2019-01-31 14:42:18,350 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:42:18,350 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:42:18,350 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:42:18,350 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:42:18,351 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 40 transitions. [2019-01-31 14:42:18,351 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:42:18,351 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 40 transitions. [2019-01-31 14:42:18,351 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 40 transitions. [2019-01-31 14:42:18,403 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-31 14:42:18,404 INFO L225 Difference]: With dead ends: 49 [2019-01-31 14:42:18,404 INFO L226 Difference]: Without dead ends: 48 [2019-01-31 14:42:18,405 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-31 14:42:18,405 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 48 states. [2019-01-31 14:42:18,712 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 48 to 34. [2019-01-31 14:42:18,713 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:42:18,713 INFO L82 GeneralOperation]: Start isEquivalent. First operand 48 states. Second operand 34 states. [2019-01-31 14:42:18,713 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand 34 states. [2019-01-31 14:42:18,713 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 34 states. [2019-01-31 14:42:18,714 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:18,714 INFO L93 Difference]: Finished difference Result 48 states and 140 transitions. [2019-01-31 14:42:18,714 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 140 transitions. [2019-01-31 14:42:18,714 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:18,714 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:18,714 INFO L74 IsIncluded]: Start isIncluded. First operand 34 states. Second operand 48 states. [2019-01-31 14:42:18,715 INFO L87 Difference]: Start difference. First operand 34 states. Second operand 48 states. [2019-01-31 14:42:18,716 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:18,716 INFO L93 Difference]: Finished difference Result 48 states and 140 transitions. [2019-01-31 14:42:18,716 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 140 transitions. [2019-01-31 14:42:18,717 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:18,717 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:18,717 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:42:18,717 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:42:18,717 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 34 states. [2019-01-31 14:42:18,718 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 34 states to 34 states and 124 transitions. [2019-01-31 14:42:18,718 INFO L78 Accepts]: Start accepts. Automaton has 34 states and 124 transitions. Word has length 5 [2019-01-31 14:42:18,718 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:42:18,718 INFO L480 AbstractCegarLoop]: Abstraction has 34 states and 124 transitions. [2019-01-31 14:42:18,718 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:42:18,718 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states and 124 transitions. [2019-01-31 14:42:18,718 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:42:18,719 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:42:18,719 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:42:18,719 INFO L423 AbstractCegarLoop]: === Iteration 22 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:42:18,719 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:42:18,719 INFO L82 PathProgramCache]: Analyzing trace with hash 28933468, now seen corresponding path program 2 times [2019-01-31 14:42:18,719 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:42:18,720 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:18,720 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:42:18,720 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:18,720 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:42:18,725 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:19,076 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-31 14:42:19,077 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-31 14:42:19,078 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-31 14:42:19,078 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-31 14:42:19,079 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-31 14:42:19,079 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:19,079 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:42:19,079 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:42:19,079 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-31 14:42:19,079 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-31 14:42:19,079 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:42:19,079 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 20 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 20 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:42:19,089 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-31 14:42:19,090 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-31 14:42:19,101 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 2 check-sat command(s) [2019-01-31 14:42:19,102 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-31 14:42:19,104 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:19,105 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:42:19,170 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-31 14:42:19,178 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:19,179 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-31 14:42:19,190 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:19,192 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:19,192 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-31 14:42:19,206 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:19,208 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:19,209 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:19,210 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-31 14:42:19,213 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:19,233 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:19,244 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:19,254 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:19,271 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:19,272 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-31 14:42:19,278 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:19,278 WARN L398 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-31 14:42:19,278 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:42:19,806 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:19,809 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:19,812 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:19,813 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:19,813 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:19,814 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:19,815 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:19,816 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:42:19,822 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:19,854 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:19,854 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:42:19,864 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:19,864 WARN L398 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-31 14:42:19,865 WARN L399 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-31 14:42:19,925 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:19,926 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:19,927 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:19,928 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:19,930 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:19,931 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:19,932 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:19,933 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:19,934 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:19,935 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-31 14:42:19,939 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:19,977 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:19,977 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-31 14:42:20,525 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:20,525 WARN L398 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-31 14:42:20,525 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_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-31 14:42:20,575 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-31 14:42:20,578 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-31 14:42:20,580 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-31 14:42:20,580 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-31 14:42:20,581 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-31 14:42:20,582 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:20,582 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:42:20,621 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-31 14:42:20,622 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-31 14:42:20,625 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-31 14:42:20,626 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-31 14:42:20,627 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-31 14:42:20,627 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:20,645 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:42:20,646 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:42:20,646 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:42:20,646 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:42:20,646 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:42:20,646 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:42:20,662 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:42:20,662 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:42:20,662 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:42:20,662 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:42:20,663 INFO L87 Difference]: Start difference. First operand 34 states and 124 transitions. Second operand 8 states. [2019-01-31 14:42:22,190 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:22,191 INFO L93 Difference]: Finished difference Result 58 states and 161 transitions. [2019-01-31 14:42:22,191 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:42:22,191 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:42:22,191 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:42:22,191 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:42:22,192 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 52 transitions. [2019-01-31 14:42:22,192 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:42:22,192 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 52 transitions. [2019-01-31 14:42:22,193 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 52 transitions. [2019-01-31 14:42:22,265 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 52 edges. 52 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:42:22,266 INFO L225 Difference]: With dead ends: 58 [2019-01-31 14:42:22,266 INFO L226 Difference]: Without dead ends: 57 [2019-01-31 14:42:22,267 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 3 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-01-31 14:42:22,267 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 57 states. [2019-01-31 14:42:22,641 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 57 to 36. [2019-01-31 14:42:22,642 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:42:22,642 INFO L82 GeneralOperation]: Start isEquivalent. First operand 57 states. Second operand 36 states. [2019-01-31 14:42:22,642 INFO L74 IsIncluded]: Start isIncluded. First operand 57 states. Second operand 36 states. [2019-01-31 14:42:22,642 INFO L87 Difference]: Start difference. First operand 57 states. Second operand 36 states. [2019-01-31 14:42:22,644 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:22,644 INFO L93 Difference]: Finished difference Result 57 states and 159 transitions. [2019-01-31 14:42:22,644 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 159 transitions. [2019-01-31 14:42:22,645 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:22,645 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:22,645 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 57 states. [2019-01-31 14:42:22,645 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 57 states. [2019-01-31 14:42:22,647 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:22,647 INFO L93 Difference]: Finished difference Result 57 states and 159 transitions. [2019-01-31 14:42:22,647 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 159 transitions. [2019-01-31 14:42:22,647 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:22,647 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:22,647 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:42:22,648 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:42:22,648 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 36 states. [2019-01-31 14:42:22,648 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 36 states to 36 states and 134 transitions. [2019-01-31 14:42:22,649 INFO L78 Accepts]: Start accepts. Automaton has 36 states and 134 transitions. Word has length 5 [2019-01-31 14:42:22,649 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:42:22,649 INFO L480 AbstractCegarLoop]: Abstraction has 36 states and 134 transitions. [2019-01-31 14:42:22,649 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:42:22,649 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 134 transitions. [2019-01-31 14:42:22,649 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:42:22,649 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:42:22,649 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:42:22,650 INFO L423 AbstractCegarLoop]: === Iteration 23 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:42:22,650 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:42:22,650 INFO L82 PathProgramCache]: Analyzing trace with hash 28941156, now seen corresponding path program 1 times [2019-01-31 14:42:22,650 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:42:22,650 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:22,651 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-31 14:42:22,651 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:22,651 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:42:22,654 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:22,779 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-31 14:42:22,781 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-31 14:42:22,784 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-31 14:42:22,785 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-31 14:42:22,786 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-31 14:42:22,786 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:22,787 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:42:22,787 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:42:22,787 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:42:22,787 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [20], [21] [2019-01-31 14:42:22,788 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:42:22,788 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:42:22,799 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:42:22,799 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-31 14:42:22,799 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:42:22,800 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:42:22,800 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:42:22,800 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 21 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 21 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:42:22,812 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:42:22,812 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:42:22,816 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:22,819 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:22,820 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:42:22,840 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-31 14:42:22,848 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-31 14:42:22,857 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:22,858 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-31 14:42:22,872 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:22,873 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:22,874 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-31 14:42:22,878 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:22,892 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:22,900 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:22,910 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:22,925 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:22,925 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:22, output treesize:27 [2019-01-31 14:42:22,930 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:22,930 WARN L398 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-31 14:42:22,930 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:42:22,980 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:22,982 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:22,983 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:22,984 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:22,985 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-31 14:42:22,988 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:23,008 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:23,008 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-31 14:42:23,022 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:23,023 WARN L398 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-31 14:42:23,023 WARN L399 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-31 14:42:23,066 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:23,067 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:23,068 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:23,069 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:23,070 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:23,071 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:23,072 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 50 [2019-01-31 14:42:23,075 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:23,099 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:23,099 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:34, output treesize:24 [2019-01-31 14:42:23,105 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:23,105 WARN L398 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-31 14:42:23,106 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (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-31 14:42:23,156 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-31 14:42:23,157 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-31 14:42:23,159 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-31 14:42:23,160 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-31 14:42:23,161 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-31 14:42:23,161 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:23,161 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:42:23,199 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-31 14:42:23,200 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-31 14:42:23,201 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-31 14:42:23,202 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-31 14:42:23,204 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-31 14:42:23,204 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:23,224 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:42:23,224 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:42:23,224 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:42:23,224 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:42:23,224 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:42:23,225 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:42:23,238 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:42:23,239 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:42:23,239 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:42:23,239 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:42:23,239 INFO L87 Difference]: Start difference. First operand 36 states and 134 transitions. Second operand 8 states. [2019-01-31 14:42:24,147 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:24,148 INFO L93 Difference]: Finished difference Result 59 states and 162 transitions. [2019-01-31 14:42:24,148 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:42:24,148 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:42:24,148 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:42:24,148 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:42:24,149 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 53 transitions. [2019-01-31 14:42:24,149 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:42:24,149 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 53 transitions. [2019-01-31 14:42:24,149 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 53 transitions. [2019-01-31 14:42:24,219 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-31 14:42:24,220 INFO L225 Difference]: With dead ends: 59 [2019-01-31 14:42:24,221 INFO L226 Difference]: Without dead ends: 58 [2019-01-31 14:42:24,221 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 12 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-01-31 14:42:24,221 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 58 states. [2019-01-31 14:42:24,547 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 58 to 37. [2019-01-31 14:42:24,547 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:42:24,547 INFO L82 GeneralOperation]: Start isEquivalent. First operand 58 states. Second operand 37 states. [2019-01-31 14:42:24,548 INFO L74 IsIncluded]: Start isIncluded. First operand 58 states. Second operand 37 states. [2019-01-31 14:42:24,548 INFO L87 Difference]: Start difference. First operand 58 states. Second operand 37 states. [2019-01-31 14:42:24,550 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:24,550 INFO L93 Difference]: Finished difference Result 58 states and 160 transitions. [2019-01-31 14:42:24,550 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 160 transitions. [2019-01-31 14:42:24,551 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:24,551 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:24,551 INFO L74 IsIncluded]: Start isIncluded. First operand 37 states. Second operand 58 states. [2019-01-31 14:42:24,551 INFO L87 Difference]: Start difference. First operand 37 states. Second operand 58 states. [2019-01-31 14:42:24,552 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:24,552 INFO L93 Difference]: Finished difference Result 58 states and 160 transitions. [2019-01-31 14:42:24,553 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 160 transitions. [2019-01-31 14:42:24,553 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:24,553 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:24,553 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:42:24,553 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:42:24,553 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 37 states. [2019-01-31 14:42:24,554 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 37 states to 37 states and 139 transitions. [2019-01-31 14:42:24,554 INFO L78 Accepts]: Start accepts. Automaton has 37 states and 139 transitions. Word has length 5 [2019-01-31 14:42:24,554 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:42:24,554 INFO L480 AbstractCegarLoop]: Abstraction has 37 states and 139 transitions. [2019-01-31 14:42:24,555 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:42:24,555 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 139 transitions. [2019-01-31 14:42:24,555 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:42:24,555 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:42:24,555 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:42:24,556 INFO L423 AbstractCegarLoop]: === Iteration 24 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:42:24,556 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:42:24,556 INFO L82 PathProgramCache]: Analyzing trace with hash 29066150, now seen corresponding path program 1 times [2019-01-31 14:42:24,556 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:42:24,557 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:24,557 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:42:24,557 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:24,557 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:42:24,560 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:24,619 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-31 14:42:24,620 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-31 14:42:24,621 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-31 14:42:24,621 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-31 14:42:24,622 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-31 14:42:24,622 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:24,622 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:42:24,623 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:42:24,623 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:42:24,623 INFO L207 CegarAbsIntRunner]: [0], [14], [20], [22], [23] [2019-01-31 14:42:24,626 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:42:24,626 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:42:24,641 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:42:24,642 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-31 14:42:24,642 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:42:24,642 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:42:24,642 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:42:24,642 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 22 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 22 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:42:24,651 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:42:24,651 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:42:24,655 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:24,657 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:24,658 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:42:24,676 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-31 14:42:24,683 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-31 14:42:24,700 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-31 14:42:24,717 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:24,718 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 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-31 14:42:24,722 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:24,732 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:24,741 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:24,749 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:24,762 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:24,762 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 4 variables, input treesize:19, output treesize:24 [2019-01-31 14:42:24,768 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:24,769 WARN L398 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-31 14:42:24,769 WARN L399 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-31 14:42:24,804 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:24,805 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:24,806 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-31 14:42:24,808 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:24,819 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:24,820 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:24, output treesize:14 [2019-01-31 14:42:24,825 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:24,825 WARN L398 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-31 14:42:24,825 WARN L399 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-31 14:42:24,855 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-31 14:42:24,856 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-31 14:42:24,857 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-31 14:42:24,858 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-31 14:42:24,859 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-31 14:42:24,859 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:24,859 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:42:24,872 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-31 14:42:24,873 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-31 14:42:24,874 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-31 14:42:24,875 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-31 14:42:24,876 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-31 14:42:24,877 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:24,896 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-01-31 14:42:24,897 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 5 [2019-01-31 14:42:24,897 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-31 14:42:24,897 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-01-31 14:42:24,897 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:42:24,897 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-31 14:42:24,913 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 5 edges. 5 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:42:24,914 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-31 14:42:24,914 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-31 14:42:24,914 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=19, Invalid=23, Unknown=0, NotChecked=0, Total=42 [2019-01-31 14:42:24,914 INFO L87 Difference]: Start difference. First operand 37 states and 139 transitions. Second operand 4 states. [2019-01-31 14:42:25,803 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:25,803 INFO L93 Difference]: Finished difference Result 74 states and 262 transitions. [2019-01-31 14:42:25,803 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2019-01-31 14:42:25,803 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-01-31 14:42:25,803 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:42:25,804 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-31 14:42:25,804 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 32 transitions. [2019-01-31 14:42:25,804 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-31 14:42:25,804 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 32 transitions. [2019-01-31 14:42:25,805 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 32 transitions. [2019-01-31 14:42:25,834 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-31 14:42:25,836 INFO L225 Difference]: With dead ends: 74 [2019-01-31 14:42:25,836 INFO L226 Difference]: Without dead ends: 73 [2019-01-31 14:42:25,836 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 5 SyntacticMatches, 0 SemanticMatches, 5 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 8 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=19, Invalid=23, Unknown=0, NotChecked=0, Total=42 [2019-01-31 14:42:25,837 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 73 states. [2019-01-31 14:42:26,514 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 73 to 59. [2019-01-31 14:42:26,515 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:42:26,515 INFO L82 GeneralOperation]: Start isEquivalent. First operand 73 states. Second operand 59 states. [2019-01-31 14:42:26,515 INFO L74 IsIncluded]: Start isIncluded. First operand 73 states. Second operand 59 states. [2019-01-31 14:42:26,515 INFO L87 Difference]: Start difference. First operand 73 states. Second operand 59 states. [2019-01-31 14:42:26,518 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:26,518 INFO L93 Difference]: Finished difference Result 73 states and 261 transitions. [2019-01-31 14:42:26,518 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 261 transitions. [2019-01-31 14:42:26,518 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:26,518 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:26,519 INFO L74 IsIncluded]: Start isIncluded. First operand 59 states. Second operand 73 states. [2019-01-31 14:42:26,519 INFO L87 Difference]: Start difference. First operand 59 states. Second operand 73 states. [2019-01-31 14:42:26,520 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:26,520 INFO L93 Difference]: Finished difference Result 73 states and 261 transitions. [2019-01-31 14:42:26,520 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 261 transitions. [2019-01-31 14:42:26,520 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:26,521 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:26,521 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:42:26,521 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:42:26,521 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 59 states. [2019-01-31 14:42:26,522 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 59 states to 59 states and 250 transitions. [2019-01-31 14:42:26,522 INFO L78 Accepts]: Start accepts. Automaton has 59 states and 250 transitions. Word has length 5 [2019-01-31 14:42:26,522 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:42:26,522 INFO L480 AbstractCegarLoop]: Abstraction has 59 states and 250 transitions. [2019-01-31 14:42:26,522 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-31 14:42:26,522 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 250 transitions. [2019-01-31 14:42:26,523 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:42:26,523 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:42:26,523 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:42:26,523 INFO L423 AbstractCegarLoop]: === Iteration 25 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:42:26,523 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:42:26,523 INFO L82 PathProgramCache]: Analyzing trace with hash 29052506, now seen corresponding path program 1 times [2019-01-31 14:42:26,523 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:42:26,524 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:26,524 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:42:26,524 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:26,524 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:42:26,529 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:27,165 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-31 14:42:27,166 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-31 14:42:27,167 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-31 14:42:27,167 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-31 14:42:27,168 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-31 14:42:27,168 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:27,169 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:42:27,169 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:42:27,169 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:42:27,169 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [16], [19] [2019-01-31 14:42:27,170 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:42:27,171 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:42:27,182 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:42:27,182 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-31 14:42:27,183 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:42:27,183 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:42:27,183 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:42:27,183 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 23 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 23 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:42:27,192 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:42:27,192 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:42:27,200 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:27,202 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:27,203 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:42:27,220 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-31 14:42:27,230 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,231 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-31 14:42:27,252 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,255 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,256 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-31 14:42:27,269 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,271 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,272 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,273 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-31 14:42:27,276 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:27,295 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:27,304 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:27,313 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:27,329 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:27,329 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-31 14:42:27,336 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:27,336 WARN L398 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-31 14:42:27,336 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:42:27,433 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,435 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,436 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,437 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,439 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,440 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,441 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,442 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:42:27,447 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:27,477 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:27,478 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:42:27,486 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:27,486 WARN L398 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-31 14:42:27,486 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 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-31 14:42:27,532 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,533 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,535 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,536 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,537 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,538 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,540 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,541 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,541 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:42:27,543 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-31 14:42:27,547 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:27,581 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:27,581 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:42:27,587 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:27,587 WARN L398 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-31 14:42:27,587 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 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-31 14:42:27,632 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,633 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,634 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,635 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,637 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,638 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,639 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,640 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,641 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:27,643 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 57 [2019-01-31 14:42:27,646 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:27,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-31 14:42:27,682 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-31 14:42:39,264 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:39,265 WARN L398 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-31 14:42:39,265 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (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-31 14:42:39,524 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-31 14:42:39,528 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-31 14:42:39,530 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-31 14:42:39,534 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-31 14:42:39,535 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-31 14:42:39,535 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:39,535 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:42:39,588 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-31 14:42:39,589 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-31 14:42:39,590 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-31 14:42:39,592 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-31 14:42:39,594 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-31 14:42:39,595 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-31 14:42:39,614 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:42:39,614 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-31 14:42:39,614 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:42:39,614 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-31 14:42:39,615 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:42:39,615 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:42:39,632 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:42:39,632 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:42:39,632 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:42:39,632 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=66, Invalid=90, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:42:39,632 INFO L87 Difference]: Start difference. First operand 59 states and 250 transitions. Second operand 10 states. [2019-01-31 14:42:41,451 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:41,451 INFO L93 Difference]: Finished difference Result 105 states and 359 transitions. [2019-01-31 14:42:41,451 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-31 14:42:41,451 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-31 14:42:41,451 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:42:41,452 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:42:41,452 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 63 transitions. [2019-01-31 14:42:41,452 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:42:41,453 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 63 transitions. [2019-01-31 14:42:41,453 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 63 transitions. [2019-01-31 14:42:41,550 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 63 edges. 63 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:42:41,553 INFO L225 Difference]: With dead ends: 105 [2019-01-31 14:42:41,553 INFO L226 Difference]: Without dead ends: 97 [2019-01-31 14:42:41,553 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 53 ImplicationChecksByTransitivity, 0.8s TimeCoverageRelationStatistics Valid=84, Invalid=126, Unknown=0, NotChecked=0, Total=210 [2019-01-31 14:42:41,554 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 97 states. [2019-01-31 14:42:42,267 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 97 to 71. [2019-01-31 14:42:42,267 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:42:42,267 INFO L82 GeneralOperation]: Start isEquivalent. First operand 97 states. Second operand 71 states. [2019-01-31 14:42:42,267 INFO L74 IsIncluded]: Start isIncluded. First operand 97 states. Second operand 71 states. [2019-01-31 14:42:42,268 INFO L87 Difference]: Start difference. First operand 97 states. Second operand 71 states. [2019-01-31 14:42:42,270 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:42,270 INFO L93 Difference]: Finished difference Result 97 states and 344 transitions. [2019-01-31 14:42:42,270 INFO L276 IsEmpty]: Start isEmpty. Operand 97 states and 344 transitions. [2019-01-31 14:42:42,271 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:42,271 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:42,271 INFO L74 IsIncluded]: Start isIncluded. First operand 71 states. Second operand 97 states. [2019-01-31 14:42:42,271 INFO L87 Difference]: Start difference. First operand 71 states. Second operand 97 states. [2019-01-31 14:42:42,273 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:42,273 INFO L93 Difference]: Finished difference Result 97 states and 344 transitions. [2019-01-31 14:42:42,273 INFO L276 IsEmpty]: Start isEmpty. Operand 97 states and 344 transitions. [2019-01-31 14:42:42,274 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:42,274 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:42,274 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:42:42,274 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:42:42,274 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 71 states. [2019-01-31 14:42:42,276 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 71 states to 71 states and 308 transitions. [2019-01-31 14:42:42,276 INFO L78 Accepts]: Start accepts. Automaton has 71 states and 308 transitions. Word has length 5 [2019-01-31 14:42:42,277 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:42:42,277 INFO L480 AbstractCegarLoop]: Abstraction has 71 states and 308 transitions. [2019-01-31 14:42:42,277 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:42:42,277 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 308 transitions. [2019-01-31 14:42:42,277 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:42:42,277 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:42:42,278 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1] [2019-01-31 14:42:42,278 INFO L423 AbstractCegarLoop]: === Iteration 26 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:42:42,278 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:42:42,278 INFO L82 PathProgramCache]: Analyzing trace with hash 902776598, now seen corresponding path program 1 times [2019-01-31 14:42:42,278 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:42:42,279 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:42,279 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:42:42,279 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:42,279 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:42:42,283 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:42,413 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-31 14:42:42,418 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-31 14:42:42,418 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-31 14:42:42,420 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-31 14:42:42,420 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-31 14:42:42,422 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-31 14:42:42,422 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:42:42,423 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:42:42,424 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:42:42,424 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:42:42,424 INFO L207 CegarAbsIntRunner]: [0], [16], [20], [22], [23] [2019-01-31 14:42:42,426 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:42:42,426 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:42:42,452 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:42:42,452 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-31 14:42:42,453 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:42:42,453 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:42:42,453 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:42:42,453 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 24 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 24 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:42:42,462 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:42:42,462 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:42:42,468 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:42,474 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:42,474 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:42:42,484 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-31 14:42:42,494 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-31 14:42:42,509 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-31 14:42:42,549 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:42,550 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-31 14:42:42,552 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:42,567 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:42,581 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:42,593 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:42,612 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:42,612 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:19, output treesize:24 [2019-01-31 14:42:42,616 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:42,616 WARN L398 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-31 14:42:42,616 WARN L399 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-31 14:42:42,689 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:42,692 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:42,692 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-31 14:42:42,694 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:42,703 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:42,703 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:24, output treesize:14 [2019-01-31 14:42:42,715 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:42,716 WARN L398 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-31 14:42:42,716 WARN L399 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-31 14:42:42,750 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:42,751 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:42,752 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:42,753 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:42,754 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 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-31 14:42:42,767 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:42,780 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:42,780 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:26, output treesize:14 [2019-01-31 14:42:53,193 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:53,194 WARN L398 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-31 14:42:53,194 WARN L399 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-31 14:42:53,285 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-31 14:42:53,286 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-31 14:42:53,287 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-31 14:42:53,288 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-31 14:42:53,291 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-31 14:42:53,291 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-31 14:42:53,292 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:53,292 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:42:53,332 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-31 14:42:53,333 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-31 14:42:53,333 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-31 14:42:53,334 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-31 14:42:53,336 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-31 14:42:53,337 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-31 14:42:53,338 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:53,357 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:42:53,357 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 3, 3] total 8 [2019-01-31 14:42:53,357 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:42:53,357 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 6 [2019-01-31 14:42:53,357 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:42:53,357 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states. [2019-01-31 14:42:53,372 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-31 14:42:53,372 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2019-01-31 14:42:53,373 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2019-01-31 14:42:53,373 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=37, Invalid=53, Unknown=0, NotChecked=0, Total=90 [2019-01-31 14:42:53,373 INFO L87 Difference]: Start difference. First operand 71 states and 308 transitions. Second operand 7 states. [2019-01-31 14:42:54,665 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:54,665 INFO L93 Difference]: Finished difference Result 85 states and 324 transitions. [2019-01-31 14:42:54,665 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:42:54,665 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 6 [2019-01-31 14:42:54,666 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:42:54,666 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-01-31 14:42:54,666 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 42 transitions. [2019-01-31 14:42:54,666 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-01-31 14:42:54,666 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 42 transitions. [2019-01-31 14:42:54,666 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 42 transitions. [2019-01-31 14:42:54,717 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-31 14:42:54,720 INFO L225 Difference]: With dead ends: 85 [2019-01-31 14:42:54,720 INFO L226 Difference]: Without dead ends: 80 [2019-01-31 14:42:54,720 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 5 SyntacticMatches, 0 SemanticMatches, 9 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 25 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:42:54,721 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 80 states. [2019-01-31 14:42:55,529 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 80 to 71. [2019-01-31 14:42:55,529 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:42:55,529 INFO L82 GeneralOperation]: Start isEquivalent. First operand 80 states. Second operand 71 states. [2019-01-31 14:42:55,529 INFO L74 IsIncluded]: Start isIncluded. First operand 80 states. Second operand 71 states. [2019-01-31 14:42:55,530 INFO L87 Difference]: Start difference. First operand 80 states. Second operand 71 states. [2019-01-31 14:42:55,533 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:55,533 INFO L93 Difference]: Finished difference Result 80 states and 318 transitions. [2019-01-31 14:42:55,533 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 318 transitions. [2019-01-31 14:42:55,533 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:55,534 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:55,534 INFO L74 IsIncluded]: Start isIncluded. First operand 71 states. Second operand 80 states. [2019-01-31 14:42:55,534 INFO L87 Difference]: Start difference. First operand 71 states. Second operand 80 states. [2019-01-31 14:42:55,535 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:55,536 INFO L93 Difference]: Finished difference Result 80 states and 318 transitions. [2019-01-31 14:42:55,536 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 318 transitions. [2019-01-31 14:42:55,536 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:55,536 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:55,536 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:42:55,536 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:42:55,536 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 71 states. [2019-01-31 14:42:55,538 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 71 states to 71 states and 307 transitions. [2019-01-31 14:42:55,538 INFO L78 Accepts]: Start accepts. Automaton has 71 states and 307 transitions. Word has length 6 [2019-01-31 14:42:55,538 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:42:55,539 INFO L480 AbstractCegarLoop]: Abstraction has 71 states and 307 transitions. [2019-01-31 14:42:55,539 INFO L481 AbstractCegarLoop]: Interpolant automaton has 7 states. [2019-01-31 14:42:55,539 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 307 transitions. [2019-01-31 14:42:55,539 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:42:55,539 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:42:55,539 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:42:55,539 INFO L423 AbstractCegarLoop]: === Iteration 27 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:42:55,539 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:42:55,540 INFO L82 PathProgramCache]: Analyzing trace with hash 902478688, now seen corresponding path program 1 times [2019-01-31 14:42:55,540 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:42:55,540 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:55,540 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:42:55,540 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:55,541 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:42:55,544 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:55,689 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-31 14:42:55,690 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-31 14:42:55,691 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-31 14:42:55,692 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-31 14:42:55,692 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-31 14:42:55,692 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-31 14:42:55,693 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:55,693 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:42:55,693 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:42:55,693 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:42:55,693 INFO L207 CegarAbsIntRunner]: [0], [6], [16], [20], [22], [23] [2019-01-31 14:42:55,695 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:42:55,695 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:42:55,718 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:42:55,719 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-31 14:42:55,719 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:42:55,719 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:42:55,719 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:42:55,719 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 25 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 25 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:42:55,728 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:42:55,728 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:42:55,732 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:55,738 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:55,739 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:42:55,755 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-31 14:42:55,765 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:55,766 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-31 14:42:55,793 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:55,795 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:55,796 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-31 14:42:55,813 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:55,814 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:55,816 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:55,817 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-31 14:42:55,821 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:55,843 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:55,855 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:55,867 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:55,885 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:55,885 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-31 14:42:55,891 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:55,892 WARN L398 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-31 14:42:55,892 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:42:55,946 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:55,948 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:55,949 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:55,951 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:55,952 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:55,953 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:55,955 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:55,955 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-31 14:42:55,960 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:55,989 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:55,990 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:42:56,108 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:56,108 WARN L398 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-31 14:42:56,108 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (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-31 14:42:56,190 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:56,192 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:56,192 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:56,194 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:56,195 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:56,197 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:56,198 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:56,199 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:56,201 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:56,202 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-31 14:42:56,224 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:56,259 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:56,260 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-31 14:42:57,167 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:57,167 WARN L398 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-31 14:42:57,167 WARN L399 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-31 14:42:57,247 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-31 14:42:57,250 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-31 14:42:57,252 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-31 14:42:57,253 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-31 14:42:57,255 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-31 14:42:57,256 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-31 14:42:57,256 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:57,256 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:42:57,310 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-31 14:42:57,311 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-31 14:42:57,312 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-31 14:42:57,313 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-31 14:42:57,314 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-31 14:42:57,317 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-31 14:42:57,317 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:57,336 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:42:57,336 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:42:57,336 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:42:57,337 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-31 14:42:57,337 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:42:57,337 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:42:57,356 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-31 14:42:57,356 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:42:57,356 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:42:57,356 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:42:57,357 INFO L87 Difference]: Start difference. First operand 71 states and 307 transitions. Second operand 8 states. [2019-01-31 14:42:58,940 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:58,940 INFO L93 Difference]: Finished difference Result 83 states and 322 transitions. [2019-01-31 14:42:58,940 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:42:58,940 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-31 14:42:58,940 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:42:58,941 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:42:58,941 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 38 transitions. [2019-01-31 14:42:58,941 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:42:58,941 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 38 transitions. [2019-01-31 14:42:58,941 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 38 transitions. [2019-01-31 14:42:58,997 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-31 14:42:58,999 INFO L225 Difference]: With dead ends: 83 [2019-01-31 14:42:58,999 INFO L226 Difference]: Without dead ends: 82 [2019-01-31 14:42:59,000 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 5 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:42:59,000 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 82 states. [2019-01-31 14:42:59,856 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 82 to 71. [2019-01-31 14:42:59,857 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:42:59,857 INFO L82 GeneralOperation]: Start isEquivalent. First operand 82 states. Second operand 71 states. [2019-01-31 14:42:59,857 INFO L74 IsIncluded]: Start isIncluded. First operand 82 states. Second operand 71 states. [2019-01-31 14:42:59,857 INFO L87 Difference]: Start difference. First operand 82 states. Second operand 71 states. [2019-01-31 14:42:59,860 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:59,860 INFO L93 Difference]: Finished difference Result 82 states and 320 transitions. [2019-01-31 14:42:59,860 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 320 transitions. [2019-01-31 14:42:59,860 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:59,860 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:59,860 INFO L74 IsIncluded]: Start isIncluded. First operand 71 states. Second operand 82 states. [2019-01-31 14:42:59,861 INFO L87 Difference]: Start difference. First operand 71 states. Second operand 82 states. [2019-01-31 14:42:59,863 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:59,863 INFO L93 Difference]: Finished difference Result 82 states and 320 transitions. [2019-01-31 14:42:59,863 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 320 transitions. [2019-01-31 14:42:59,863 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:59,863 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:59,864 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:42:59,864 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:42:59,864 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 71 states. [2019-01-31 14:42:59,866 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 71 states to 71 states and 307 transitions. [2019-01-31 14:42:59,866 INFO L78 Accepts]: Start accepts. Automaton has 71 states and 307 transitions. Word has length 6 [2019-01-31 14:42:59,866 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:42:59,866 INFO L480 AbstractCegarLoop]: Abstraction has 71 states and 307 transitions. [2019-01-31 14:42:59,866 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:42:59,867 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 307 transitions. [2019-01-31 14:42:59,867 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:42:59,867 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:42:59,867 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:42:59,867 INFO L423 AbstractCegarLoop]: === Iteration 28 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:42:59,868 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:42:59,868 INFO L82 PathProgramCache]: Analyzing trace with hash 902469014, now seen corresponding path program 1 times [2019-01-31 14:42:59,868 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:42:59,869 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:59,869 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:42:59,869 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:59,869 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:42:59,874 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:00,181 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-31 14:43:00,183 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-31 14:43:00,184 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-31 14:43:00,184 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-31 14:43:00,185 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-31 14:43:00,185 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-31 14:43:00,185 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:43:00,186 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:43:00,186 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:43:00,186 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:43:00,186 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [16], [20], [21] [2019-01-31 14:43:00,188 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:43:00,188 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:43:00,199 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:43:00,199 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-31 14:43:00,199 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:43:00,200 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:43:00,200 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:43:00,200 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 26 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 26 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:43:00,209 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:43:00,209 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:43:00,213 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:00,218 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:00,219 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:43:00,239 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-31 14:43:00,245 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:00,246 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-31 14:43:00,258 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:00,260 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:00,261 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-31 14:43:00,277 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:00,278 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:00,279 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:00,280 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-31 14:43:00,285 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:00,306 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:00,318 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:00,327 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:00,345 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:43:00,345 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-31 14:43:00,354 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:00,355 WARN L398 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-31 14:43:00,355 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:43:00,413 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:00,415 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:00,416 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:00,417 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:00,419 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:00,420 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:00,421 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:00,422 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-31 14:43:00,428 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:00,459 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:43:00,459 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:43:10,469 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:10,469 WARN L398 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-31 14:43:10,469 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (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-31 14:43:10,574 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,575 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,577 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,578 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,580 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,581 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,582 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,583 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,585 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,590 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-31 14:43:10,594 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:10,633 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:43:10,633 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-31 14:43:10,655 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:10,656 WARN L398 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-31 14:43:10,656 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:43:10,721 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,723 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,724 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,725 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,727 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,728 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,729 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,730 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,731 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:43:10,732 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,733 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-31 14:43:10,738 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:10,779 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:43:10,779 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:30 [2019-01-31 14:43:10,794 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:10,795 WARN L398 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-31 14:43:10,795 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 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-31 14:43:10,919 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-31 14:43:10,921 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-31 14:43:10,923 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-31 14:43:10,925 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-31 14:43:10,926 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-31 14:43:10,927 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-31 14:43:10,928 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:43:10,929 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:43:10,989 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-31 14:43:10,990 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-31 14:43:10,991 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-31 14:43:10,992 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-31 14:43:10,993 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-31 14:43:10,995 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-31 14:43:10,996 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 4 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:43:11,016 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:43:11,016 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-31 14:43:11,016 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:43:11,016 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-31 14:43:11,017 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:43:11,017 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:43:11,036 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-31 14:43:11,037 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:43:11,037 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:43:11,037 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=64, Invalid=92, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:43:11,037 INFO L87 Difference]: Start difference. First operand 71 states and 307 transitions. Second operand 10 states. [2019-01-31 14:43:13,134 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:13,135 INFO L93 Difference]: Finished difference Result 97 states and 346 transitions. [2019-01-31 14:43:13,135 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-31 14:43:13,135 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-31 14:43:13,135 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:43:13,135 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:43:13,136 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 56 transitions. [2019-01-31 14:43:13,136 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:43:13,138 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 56 transitions. [2019-01-31 14:43:13,138 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 56 transitions. [2019-01-31 14:43:13,251 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 56 edges. 56 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:43:13,253 INFO L225 Difference]: With dead ends: 97 [2019-01-31 14:43:13,253 INFO L226 Difference]: Without dead ends: 96 [2019-01-31 14:43:13,254 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-31 14:43:13,254 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 96 states. [2019-01-31 14:43:14,195 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 96 to 71. [2019-01-31 14:43:14,195 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:43:14,195 INFO L82 GeneralOperation]: Start isEquivalent. First operand 96 states. Second operand 71 states. [2019-01-31 14:43:14,195 INFO L74 IsIncluded]: Start isIncluded. First operand 96 states. Second operand 71 states. [2019-01-31 14:43:14,195 INFO L87 Difference]: Start difference. First operand 96 states. Second operand 71 states. [2019-01-31 14:43:14,201 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:14,201 INFO L93 Difference]: Finished difference Result 96 states and 344 transitions. [2019-01-31 14:43:14,201 INFO L276 IsEmpty]: Start isEmpty. Operand 96 states and 344 transitions. [2019-01-31 14:43:14,201 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:43:14,202 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:43:14,202 INFO L74 IsIncluded]: Start isIncluded. First operand 71 states. Second operand 96 states. [2019-01-31 14:43:14,202 INFO L87 Difference]: Start difference. First operand 71 states. Second operand 96 states. [2019-01-31 14:43:14,207 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:14,207 INFO L93 Difference]: Finished difference Result 96 states and 344 transitions. [2019-01-31 14:43:14,207 INFO L276 IsEmpty]: Start isEmpty. Operand 96 states and 344 transitions. [2019-01-31 14:43:14,207 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:43:14,208 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:43:14,208 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:43:14,208 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:43:14,208 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 71 states. [2019-01-31 14:43:14,212 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 71 states to 71 states and 307 transitions. [2019-01-31 14:43:14,212 INFO L78 Accepts]: Start accepts. Automaton has 71 states and 307 transitions. Word has length 6 [2019-01-31 14:43:14,213 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:43:14,213 INFO L480 AbstractCegarLoop]: Abstraction has 71 states and 307 transitions. [2019-01-31 14:43:14,213 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:43:14,213 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 307 transitions. [2019-01-31 14:43:14,213 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:43:14,213 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:43:14,214 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:43:14,214 INFO L423 AbstractCegarLoop]: === Iteration 29 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:43:14,214 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:43:14,214 INFO L82 PathProgramCache]: Analyzing trace with hash 902472858, now seen corresponding path program 1 times [2019-01-31 14:43:14,214 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:43:14,215 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:43:14,215 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:43:14,215 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:43:14,215 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:43:14,219 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:14,483 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-31 14:43:14,485 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-31 14:43:14,486 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-31 14:43:14,487 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-31 14:43:14,487 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-31 14:43:14,488 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-31 14:43:14,488 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:43:14,489 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:43:14,489 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:43:14,489 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:43:14,489 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [16], [20], [21] [2019-01-31 14:43:14,490 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:43:14,490 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:43:14,511 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:43:14,511 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-31 14:43:14,511 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:43:14,511 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:43:14,512 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:43:14,512 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-31 14:43:14,522 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:43:14,523 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:43:14,534 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:14,541 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:14,542 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:43:14,557 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-31 14:43:14,572 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:14,572 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-31 14:43:14,581 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:14,582 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:14,583 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-31 14:43:14,595 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:14,596 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:14,597 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:14,598 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-31 14:43:14,600 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:14,620 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:14,629 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:14,639 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:14,653 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:14,654 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-31 14:43:14,658 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:14,658 WARN L398 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-31 14:43:14,659 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:43:14,704 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:14,705 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:14,707 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:14,708 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:14,709 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:14,710 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:14,712 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:14,713 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-31 14:43:14,715 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:14,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-31 14:43:14,746 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-31 14:43:24,861 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:24,861 WARN L398 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-31 14:43:24,862 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (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-31 14:43:24,929 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:24,931 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:24,932 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:24,934 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:24,935 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:24,936 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:24,937 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:24,939 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:24,940 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:24,941 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-31 14:43:24,944 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:24,979 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:43:24,980 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-31 14:43:25,978 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:25,978 WARN L398 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-31 14:43:25,978 WARN L399 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-31 14:43:26,032 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:26,033 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:26,035 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:26,036 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:26,037 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:26,038 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:26,039 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:26,040 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:26,041 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:26,042 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:26,043 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:43:26,044 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-31 14:43:26,047 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:26,084 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:43:26,085 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-31 14:43:26,096 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:26,097 WARN L398 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-31 14:43:26,097 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (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-31 14:43:26,141 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-31 14:43:26,142 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-31 14:43:26,144 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-31 14:43:26,147 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-31 14:43:26,148 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-31 14:43:26,149 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-31 14:43:26,149 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:43:26,150 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:43:26,215 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-31 14:43:26,216 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-31 14:43:26,217 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-31 14:43:26,218 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-31 14:43:26,219 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-31 14:43:26,221 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-31 14:43:26,221 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:43:26,240 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:43:26,240 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-31 14:43:26,240 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:43:26,241 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-31 14:43:26,241 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:43:26,241 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:43:26,261 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-31 14:43:26,261 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:43:26,261 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:43:26,262 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=65, Invalid=117, Unknown=0, NotChecked=0, Total=182 [2019-01-31 14:43:26,262 INFO L87 Difference]: Start difference. First operand 71 states and 307 transitions. Second operand 10 states. [2019-01-31 14:43:28,091 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:28,091 INFO L93 Difference]: Finished difference Result 102 states and 389 transitions. [2019-01-31 14:43:28,091 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:43:28,091 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-31 14:43:28,091 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:43:28,091 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:43:28,092 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 47 transitions. [2019-01-31 14:43:28,092 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:43:28,093 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 47 transitions. [2019-01-31 14:43:28,093 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 47 transitions. [2019-01-31 14:43:28,217 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-31 14:43:28,219 INFO L225 Difference]: With dead ends: 102 [2019-01-31 14:43:28,219 INFO L226 Difference]: Without dead ends: 101 [2019-01-31 14:43:28,220 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-31 14:43:28,220 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 101 states. [2019-01-31 14:43:29,217 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 101 to 81. [2019-01-31 14:43:29,218 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:43:29,218 INFO L82 GeneralOperation]: Start isEquivalent. First operand 101 states. Second operand 81 states. [2019-01-31 14:43:29,218 INFO L74 IsIncluded]: Start isIncluded. First operand 101 states. Second operand 81 states. [2019-01-31 14:43:29,218 INFO L87 Difference]: Start difference. First operand 101 states. Second operand 81 states. [2019-01-31 14:43:29,224 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:29,224 INFO L93 Difference]: Finished difference Result 101 states and 386 transitions. [2019-01-31 14:43:29,224 INFO L276 IsEmpty]: Start isEmpty. Operand 101 states and 386 transitions. [2019-01-31 14:43:29,225 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:43:29,225 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:43:29,225 INFO L74 IsIncluded]: Start isIncluded. First operand 81 states. Second operand 101 states. [2019-01-31 14:43:29,225 INFO L87 Difference]: Start difference. First operand 81 states. Second operand 101 states. [2019-01-31 14:43:29,229 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:29,230 INFO L93 Difference]: Finished difference Result 101 states and 386 transitions. [2019-01-31 14:43:29,230 INFO L276 IsEmpty]: Start isEmpty. Operand 101 states and 386 transitions. [2019-01-31 14:43:29,230 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:43:29,230 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:43:29,230 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:43:29,230 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:43:29,230 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 81 states. [2019-01-31 14:43:29,234 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 81 states to 81 states and 357 transitions. [2019-01-31 14:43:29,234 INFO L78 Accepts]: Start accepts. Automaton has 81 states and 357 transitions. Word has length 6 [2019-01-31 14:43:29,234 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:43:29,235 INFO L480 AbstractCegarLoop]: Abstraction has 81 states and 357 transitions. [2019-01-31 14:43:29,235 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:43:29,235 INFO L276 IsEmpty]: Start isEmpty. Operand 81 states and 357 transitions. [2019-01-31 14:43:29,235 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:43:29,235 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:43:29,235 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:43:29,236 INFO L423 AbstractCegarLoop]: === Iteration 30 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:43:29,236 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:43:29,236 INFO L82 PathProgramCache]: Analyzing trace with hash 902592022, now seen corresponding path program 1 times [2019-01-31 14:43:29,236 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:43:29,237 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:43:29,237 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:43:29,237 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:43:29,237 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:43:29,240 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:29,575 WARN L181 SmtUtils]: Spent 288.00 ms on a formula simplification. DAG size of input: 30 DAG size of output: 17 [2019-01-31 14:43:29,654 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-31 14:43:29,655 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-31 14:43:29,656 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-31 14:43:29,657 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-31 14:43:29,657 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-31 14:43:29,658 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-31 14:43:29,659 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:43:29,659 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:43:29,659 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:43:29,659 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:43:29,660 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [16], [20], [21] [2019-01-31 14:43:29,661 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:43:29,661 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:43:29,670 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:43:29,670 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-31 14:43:29,670 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:43:29,671 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:43:29,671 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:43:29,671 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-31 14:43:29,681 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:43:29,682 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:43:29,689 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:29,699 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:29,700 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:43:29,713 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-31 14:43:29,719 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-31 14:43:29,729 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:29,730 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-31 14:43:29,744 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:29,745 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:29,746 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-31 14:43:29,749 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:29,764 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:29,774 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:29,783 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:29,796 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:43:29,797 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:22, output treesize:27 [2019-01-31 14:43:29,801 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:29,801 WARN L398 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-31 14:43:29,801 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:43:29,859 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:29,861 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:29,862 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:29,863 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:29,864 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 28 [2019-01-31 14:43:29,868 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:29,887 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:43:29,887 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-31 14:43:40,221 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:40,221 WARN L398 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-31 14:43:40,221 WARN L399 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-31 14:43:40,560 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:40,561 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:40,562 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:40,563 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:40,564 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:43:40,565 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-31 14:43:40,570 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:40,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-31 14:43:40,590 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:34, output treesize:22 [2019-01-31 14:43:40,601 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:40,602 WARN L398 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-31 14:43:40,602 WARN L399 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-31 14:43:40,649 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:40,651 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:40,652 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:40,653 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:40,655 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:40,656 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:40,656 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-31 14:43:40,660 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:40,684 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:43:40,684 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:36, output treesize:26 [2019-01-31 14:43:40,691 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:40,692 WARN L398 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-31 14:43:40,692 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_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-31 14:43:40,732 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-31 14:43:40,734 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-31 14:43:40,738 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-31 14:43:40,739 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-31 14:43:40,740 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-31 14:43:40,740 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-31 14:43:40,741 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:43:40,741 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:43:40,804 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-31 14:43:40,809 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-31 14:43:40,823 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-31 14:43:40,824 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-31 14:43:40,825 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-31 14:43:40,827 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-31 14:43:40,827 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-31 14:43:40,846 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:43:40,846 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-31 14:43:40,846 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:43:40,847 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-31 14:43:40,847 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:43:40,847 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:43:40,864 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-31 14:43:40,864 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:43:40,865 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:43:40,865 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=71, Invalid=111, Unknown=0, NotChecked=0, Total=182 [2019-01-31 14:43:40,865 INFO L87 Difference]: Start difference. First operand 81 states and 357 transitions. Second operand 10 states. [2019-01-31 14:43:42,794 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:42,794 INFO L93 Difference]: Finished difference Result 108 states and 386 transitions. [2019-01-31 14:43:42,794 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-31 14:43:42,794 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-31 14:43:42,794 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:43:42,795 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:43:42,795 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 57 transitions. [2019-01-31 14:43:42,795 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:43:42,796 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 57 transitions. [2019-01-31 14:43:42,796 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 57 transitions. [2019-01-31 14:43:42,930 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-31 14:43:42,933 INFO L225 Difference]: With dead ends: 108 [2019-01-31 14:43:42,933 INFO L226 Difference]: Without dead ends: 107 [2019-01-31 14:43:42,934 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 59 ImplicationChecksByTransitivity, 0.8s TimeCoverageRelationStatistics Valid=89, Invalid=151, Unknown=0, NotChecked=0, Total=240 [2019-01-31 14:43:42,934 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 107 states. [2019-01-31 14:43:43,924 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 107 to 77. [2019-01-31 14:43:43,924 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:43:43,925 INFO L82 GeneralOperation]: Start isEquivalent. First operand 107 states. Second operand 77 states. [2019-01-31 14:43:43,925 INFO L74 IsIncluded]: Start isIncluded. First operand 107 states. Second operand 77 states. [2019-01-31 14:43:43,925 INFO L87 Difference]: Start difference. First operand 107 states. Second operand 77 states. [2019-01-31 14:43:43,927 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:43,927 INFO L93 Difference]: Finished difference Result 107 states and 383 transitions. [2019-01-31 14:43:43,927 INFO L276 IsEmpty]: Start isEmpty. Operand 107 states and 383 transitions. [2019-01-31 14:43:43,928 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:43:43,928 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:43:43,928 INFO L74 IsIncluded]: Start isIncluded. First operand 77 states. Second operand 107 states. [2019-01-31 14:43:43,928 INFO L87 Difference]: Start difference. First operand 77 states. Second operand 107 states. [2019-01-31 14:43:43,931 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:43,931 INFO L93 Difference]: Finished difference Result 107 states and 383 transitions. [2019-01-31 14:43:43,931 INFO L276 IsEmpty]: Start isEmpty. Operand 107 states and 383 transitions. [2019-01-31 14:43:43,932 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:43:43,932 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:43:43,932 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:43:43,932 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:43:43,932 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 77 states. [2019-01-31 14:43:43,934 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 77 states to 77 states and 337 transitions. [2019-01-31 14:43:43,935 INFO L78 Accepts]: Start accepts. Automaton has 77 states and 337 transitions. Word has length 6 [2019-01-31 14:43:43,935 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:43:43,935 INFO L480 AbstractCegarLoop]: Abstraction has 77 states and 337 transitions. [2019-01-31 14:43:43,935 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:43:43,935 INFO L276 IsEmpty]: Start isEmpty. Operand 77 states and 337 transitions. [2019-01-31 14:43:43,935 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:43:43,936 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:43:43,936 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:43:43,936 INFO L423 AbstractCegarLoop]: === Iteration 31 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:43:43,936 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:43:43,936 INFO L82 PathProgramCache]: Analyzing trace with hash 902591586, now seen corresponding path program 1 times [2019-01-31 14:43:43,936 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:43:43,937 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:43:43,937 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:43:43,937 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:43:43,937 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:43:43,941 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:44,415 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-31 14:43:44,416 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-31 14:43:44,417 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-31 14:43:44,418 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-31 14:43:44,419 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-31 14:43:44,420 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-31 14:43:44,420 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-31 14:43:44,420 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:43:44,420 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:43:44,421 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:43:44,421 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [16], [19] [2019-01-31 14:43:44,422 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:43:44,422 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:43:44,453 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:43:44,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 4 fixpoints after 4 different actions. Largest state had 0 variables. [2019-01-31 14:43:44,454 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:43:44,454 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:43:44,454 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:43:44,454 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 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-31 14:43:44,463 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:43:44,463 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:43:44,467 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:44,472 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:44,472 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:43:44,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-31 14:43:44,499 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:44,500 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-31 14:43:44,511 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:44,513 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:44,514 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-31 14:43:44,534 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:44,536 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:44,537 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:44,538 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-31 14:43:44,543 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:44,561 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:44,572 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:44,583 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:44,600 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:44,600 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-31 14:43:44,606 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:44,606 WARN L398 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-31 14:43:44,606 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:43:44,663 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:44,664 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:44,666 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:44,667 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:44,668 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:44,670 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:44,671 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:44,672 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-31 14:43:44,677 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:44,716 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:43:44,716 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-31 14:43:54,961 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:54,961 WARN L398 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-31 14:43:54,961 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (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-31 14:43:55,045 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:55,047 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:55,049 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:55,050 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:55,052 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:55,053 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:55,054 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:55,055 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:43:55,056 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 60 [2019-01-31 14:43:55,059 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:55,093 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:43:55,094 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:30 [2019-01-31 14:44:06,734 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:06,735 WARN L398 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-31 14:44:06,735 WARN L399 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-31 14:44:08,035 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:08,037 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:08,038 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:08,039 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:08,041 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:08,042 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:08,043 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:08,044 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:08,046 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:08,047 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 69 [2019-01-31 14:44:08,050 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:08,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-31 14:44:08,089 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-01-31 14:44:18,120 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:18,120 WARN L398 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-31 14:44:18,121 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-31 14:44:18,280 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:18,281 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:18,282 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:18,284 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:18,285 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:18,286 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:18,287 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:18,288 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:18,290 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:18,291 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:18,292 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:18,292 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:44:18,293 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-31 14:44:18,304 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:18,343 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:18,344 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-01-31 14:44:18,351 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:18,351 WARN L398 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-31 14:44:18,351 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (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-31 14:44:18,377 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-31 14:44:18,379 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-31 14:44:18,382 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-31 14:44:18,384 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-31 14:44:18,387 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-31 14:44:18,388 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-31 14:44:18,389 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-31 14:44:18,389 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:44:18,523 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-31 14:44:18,524 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-31 14:44:18,525 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-31 14:44:18,526 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-31 14:44:18,529 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-31 14:44:18,531 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-31 14:44:18,532 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-31 14:44:18,551 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:44:18,551 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 14 [2019-01-31 14:44:18,551 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:44:18,552 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-31 14:44:18,552 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:44:18,552 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-31 14:44:18,572 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-31 14:44:18,572 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-31 14:44:18,573 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-31 14:44:18,573 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=93, Invalid=147, Unknown=0, NotChecked=0, Total=240 [2019-01-31 14:44:18,573 INFO L87 Difference]: Start difference. First operand 77 states and 337 transitions. Second operand 12 states. [2019-01-31 14:44:21,442 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:21,443 INFO L93 Difference]: Finished difference Result 120 states and 459 transitions. [2019-01-31 14:44:21,443 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-31 14:44:21,443 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-31 14:44:21,443 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:44:21,443 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:44:21,444 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 63 transitions. [2019-01-31 14:44:21,444 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:44:21,444 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 63 transitions. [2019-01-31 14:44:21,444 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 63 transitions. [2019-01-31 14:44:21,802 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 63 edges. 63 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:21,805 INFO L225 Difference]: With dead ends: 120 [2019-01-31 14:44:21,805 INFO L226 Difference]: Without dead ends: 119 [2019-01-31 14:44:21,806 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 86 ImplicationChecksByTransitivity, 1.9s TimeCoverageRelationStatistics Valid=129, Invalid=213, Unknown=0, NotChecked=0, Total=342 [2019-01-31 14:44:21,806 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 119 states. [2019-01-31 14:44:22,583 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 119 to 82. [2019-01-31 14:44:22,583 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:44:22,583 INFO L82 GeneralOperation]: Start isEquivalent. First operand 119 states. Second operand 82 states. [2019-01-31 14:44:22,584 INFO L74 IsIncluded]: Start isIncluded. First operand 119 states. Second operand 82 states. [2019-01-31 14:44:22,584 INFO L87 Difference]: Start difference. First operand 119 states. Second operand 82 states. [2019-01-31 14:44:22,588 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:22,588 INFO L93 Difference]: Finished difference Result 119 states and 455 transitions. [2019-01-31 14:44:22,588 INFO L276 IsEmpty]: Start isEmpty. Operand 119 states and 455 transitions. [2019-01-31 14:44:22,589 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:22,589 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:22,589 INFO L74 IsIncluded]: Start isIncluded. First operand 82 states. Second operand 119 states. [2019-01-31 14:44:22,589 INFO L87 Difference]: Start difference. First operand 82 states. Second operand 119 states. [2019-01-31 14:44:22,593 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:22,593 INFO L93 Difference]: Finished difference Result 119 states and 455 transitions. [2019-01-31 14:44:22,593 INFO L276 IsEmpty]: Start isEmpty. Operand 119 states and 455 transitions. [2019-01-31 14:44:22,594 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:22,594 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:22,594 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:44:22,594 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:44:22,594 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 82 states. [2019-01-31 14:44:22,597 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 82 states to 82 states and 362 transitions. [2019-01-31 14:44:22,597 INFO L78 Accepts]: Start accepts. Automaton has 82 states and 362 transitions. Word has length 6 [2019-01-31 14:44:22,597 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:44:22,597 INFO L480 AbstractCegarLoop]: Abstraction has 82 states and 362 transitions. [2019-01-31 14:44:22,597 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-31 14:44:22,597 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 362 transitions. [2019-01-31 14:44:22,598 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:44:22,598 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:44:22,598 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:44:22,598 INFO L423 AbstractCegarLoop]: === Iteration 32 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:44:22,598 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:22,598 INFO L82 PathProgramCache]: Analyzing trace with hash 902703186, now seen corresponding path program 2 times [2019-01-31 14:44:22,599 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:44:22,599 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:22,599 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:22,599 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:22,599 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:44:22,602 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:23,074 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-31 14:44:23,075 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-31 14:44:23,076 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-31 14:44:23,078 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-31 14:44:23,079 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-31 14:44:23,079 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-31 14:44:23,080 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-31 14:44:23,080 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:23,080 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:44:23,080 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-31 14:44:23,081 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-31 14:44:23,081 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:23,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 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-31 14:44:23,093 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-31 14:44:23,093 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-31 14:44:23,101 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-31 14:44:23,101 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-31 14:44:23,104 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:23,104 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:44:23,120 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-31 14:44:23,128 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:23,129 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 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-31 14:44:23,141 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:23,142 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:23,143 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-31 14:44:23,158 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:23,159 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:23,160 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:23,161 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-31 14:44:23,165 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:23,185 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:23,197 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:23,208 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:23,223 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:23,223 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-31 14:44:23,228 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:23,228 WARN L398 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-31 14:44:23,228 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:44:23,285 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:23,286 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:23,288 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:23,289 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:23,290 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:23,291 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:23,293 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:23,293 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-31 14:44:23,297 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:23,328 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:23,328 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-31 14:44:33,490 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:33,490 WARN L398 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-31 14:44:33,490 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (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-31 14:44:33,613 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,615 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,616 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,618 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,619 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,620 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,622 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,623 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,624 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,625 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-31 14:44:33,628 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:33,668 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:33,668 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-31 14:44:33,684 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:33,685 WARN L398 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-31 14:44:33,685 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (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-31 14:44:33,745 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,746 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,747 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,749 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,750 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,751 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,752 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,753 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,754 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,755 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,757 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,757 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:44:33,758 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 73 [2019-01-31 14:44:33,763 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:33,801 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:33,801 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-31 14:44:33,807 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:33,807 WARN L398 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-31 14:44:33,807 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (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-31 14:44:33,876 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,878 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,879 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,880 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,882 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,883 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,884 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,886 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,886 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:44:33,887 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:33,888 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-31 14:44:33,891 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:33,932 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:33,932 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:30 [2019-01-31 14:44:33,939 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:33,939 WARN L398 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-31 14:44:33,939 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 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-31 14:44:33,968 INFO L273 TraceCheckUtils]: 0: Hoare triple {9479#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {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-31 14:44:33,970 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-31 14:44:33,973 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-31 14:44:33,975 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-31 14:44:33,977 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-31 14:44:33,978 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-31 14:44:33,978 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-31 14:44:33,978 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:44:34,095 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-31 14:44:34,096 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-31 14:44:34,097 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-31 14:44:34,099 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-31 14:44:34,102 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-31 14:44:34,104 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-31 14:44:34,105 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-31 14:44:34,124 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:44:34,125 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 15 [2019-01-31 14:44:34,125 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:44:34,125 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-31 14:44:34,125 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:44:34,125 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-31 14:44:34,147 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-31 14:44:34,147 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-31 14:44:34,147 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-31 14:44:34,147 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=102, Invalid=170, Unknown=0, NotChecked=0, Total=272 [2019-01-31 14:44:34,148 INFO L87 Difference]: Start difference. First operand 82 states and 362 transitions. Second operand 12 states. [2019-01-31 14:44:36,996 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:36,996 INFO L93 Difference]: Finished difference Result 146 states and 556 transitions. [2019-01-31 14:44:36,996 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-31 14:44:36,996 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-31 14:44:36,996 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:44:36,997 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:44:36,997 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 67 transitions. [2019-01-31 14:44:36,997 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:44:36,998 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 67 transitions. [2019-01-31 14:44:36,998 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 67 transitions. [2019-01-31 14:44:37,117 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-31 14:44:37,122 INFO L225 Difference]: With dead ends: 146 [2019-01-31 14:44:37,122 INFO L226 Difference]: Without dead ends: 145 [2019-01-31 14:44:37,122 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 18 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 100 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=134, Invalid=246, Unknown=0, NotChecked=0, Total=380 [2019-01-31 14:44:37,123 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 145 states. [2019-01-31 14:44:38,095 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 145 to 98. [2019-01-31 14:44:38,096 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:44:38,096 INFO L82 GeneralOperation]: Start isEquivalent. First operand 145 states. Second operand 98 states. [2019-01-31 14:44:38,096 INFO L74 IsIncluded]: Start isIncluded. First operand 145 states. Second operand 98 states. [2019-01-31 14:44:38,096 INFO L87 Difference]: Start difference. First operand 145 states. Second operand 98 states. [2019-01-31 14:44:38,101 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:38,101 INFO L93 Difference]: Finished difference Result 145 states and 549 transitions. [2019-01-31 14:44:38,101 INFO L276 IsEmpty]: Start isEmpty. Operand 145 states and 549 transitions. [2019-01-31 14:44:38,101 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:38,101 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:38,101 INFO L74 IsIncluded]: Start isIncluded. First operand 98 states. Second operand 145 states. [2019-01-31 14:44:38,102 INFO L87 Difference]: Start difference. First operand 98 states. Second operand 145 states. [2019-01-31 14:44:38,105 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:38,105 INFO L93 Difference]: Finished difference Result 145 states and 549 transitions. [2019-01-31 14:44:38,105 INFO L276 IsEmpty]: Start isEmpty. Operand 145 states and 549 transitions. [2019-01-31 14:44:38,105 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:38,105 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:38,105 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:44:38,105 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:44:38,105 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 98 states. [2019-01-31 14:44:38,107 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 98 states to 98 states and 442 transitions. [2019-01-31 14:44:38,107 INFO L78 Accepts]: Start accepts. Automaton has 98 states and 442 transitions. Word has length 6 [2019-01-31 14:44:38,108 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:44:38,108 INFO L480 AbstractCegarLoop]: Abstraction has 98 states and 442 transitions. [2019-01-31 14:44:38,108 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-31 14:44:38,108 INFO L276 IsEmpty]: Start isEmpty. Operand 98 states and 442 transitions. [2019-01-31 14:44:38,108 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:44:38,108 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:44:38,108 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:44:38,108 INFO L423 AbstractCegarLoop]: === Iteration 33 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:44:38,108 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:38,109 INFO L82 PathProgramCache]: Analyzing trace with hash 893362642, now seen corresponding path program 1 times [2019-01-31 14:44:38,109 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:44:38,109 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:38,109 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-31 14:44:38,109 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:38,110 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:44:38,113 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:38,365 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-31 14:44:38,366 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-31 14:44:38,367 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-31 14:44:38,367 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-31 14:44:38,367 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-31 14:44:38,368 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-31 14:44:38,368 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:44:38,368 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:38,368 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:44:38,368 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:44:38,369 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [20], [22], [23] [2019-01-31 14:44:38,370 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:44:38,370 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:44:38,378 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:44:38,378 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-31 14:44:38,379 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:38,379 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:44:38,379 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:38,379 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-31 14:44:38,389 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:38,389 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:44:38,393 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:38,395 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:38,396 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:44:38,433 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-31 14:44:38,443 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,444 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-31 14:44:38,454 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,456 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,457 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-31 14:44:38,469 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,470 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,472 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,473 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-31 14:44:38,475 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:38,495 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:38,505 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:38,515 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:38,529 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:38,530 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-31 14:44:38,534 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:38,534 WARN L398 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-31 14:44:38,535 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:44:38,625 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,627 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,628 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,629 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,631 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,632 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,633 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,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, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:44:38,637 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:38,670 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:38,671 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:44:38,686 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:38,686 WARN L398 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-31 14:44:38,686 WARN L399 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-31 14:44:38,773 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,775 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,776 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,777 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,778 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,780 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,781 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,782 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,783 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,784 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-31 14:44:38,786 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:38,824 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:38,824 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-31 14:44:38,833 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:38,833 WARN L398 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-31 14:44:38,833 WARN L399 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-31 14:44:38,897 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-31 14:44:38,898 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-31 14:44:38,900 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-31 14:44:38,901 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-31 14:44:38,902 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-31 14:44:38,903 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-31 14:44:38,904 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:38,904 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:44:38,946 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-31 14:44:38,947 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-31 14:44:38,948 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-31 14:44:38,949 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-31 14:44:38,950 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-31 14:44:38,952 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-31 14:44:38,953 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:38,973 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:44:38,973 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 3, 3] total 8 [2019-01-31 14:44:38,973 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:44:38,974 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 6 [2019-01-31 14:44:38,974 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:44:38,974 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states. [2019-01-31 14:44:38,992 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-31 14:44:38,992 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2019-01-31 14:44:38,993 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2019-01-31 14:44:38,993 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=35, Invalid=55, Unknown=0, NotChecked=0, Total=90 [2019-01-31 14:44:38,993 INFO L87 Difference]: Start difference. First operand 98 states and 442 transitions. Second operand 7 states. [2019-01-31 14:44:40,423 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:40,423 INFO L93 Difference]: Finished difference Result 111 states and 462 transitions. [2019-01-31 14:44:40,423 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:44:40,423 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 6 [2019-01-31 14:44:40,424 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:44:40,424 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-01-31 14:44:40,424 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 38 transitions. [2019-01-31 14:44:40,424 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-01-31 14:44:40,425 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 38 transitions. [2019-01-31 14:44:40,425 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 38 transitions. [2019-01-31 14:44:40,495 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-31 14:44:40,498 INFO L225 Difference]: With dead ends: 111 [2019-01-31 14:44:40,498 INFO L226 Difference]: Without dead ends: 110 [2019-01-31 14:44:40,499 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-31 14:44:40,499 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 110 states. [2019-01-31 14:44:41,422 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 110 to 100. [2019-01-31 14:44:41,422 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:44:41,423 INFO L82 GeneralOperation]: Start isEquivalent. First operand 110 states. Second operand 100 states. [2019-01-31 14:44:41,423 INFO L74 IsIncluded]: Start isIncluded. First operand 110 states. Second operand 100 states. [2019-01-31 14:44:41,423 INFO L87 Difference]: Start difference. First operand 110 states. Second operand 100 states. [2019-01-31 14:44:41,426 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:41,427 INFO L93 Difference]: Finished difference Result 110 states and 460 transitions. [2019-01-31 14:44:41,427 INFO L276 IsEmpty]: Start isEmpty. Operand 110 states and 460 transitions. [2019-01-31 14:44:41,427 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:41,427 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:41,427 INFO L74 IsIncluded]: Start isIncluded. First operand 100 states. Second operand 110 states. [2019-01-31 14:44:41,427 INFO L87 Difference]: Start difference. First operand 100 states. Second operand 110 states. [2019-01-31 14:44:41,429 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:41,430 INFO L93 Difference]: Finished difference Result 110 states and 460 transitions. [2019-01-31 14:44:41,430 INFO L276 IsEmpty]: Start isEmpty. Operand 110 states and 460 transitions. [2019-01-31 14:44:41,430 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:41,430 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:41,430 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:44:41,430 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:44:41,430 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 100 states. [2019-01-31 14:44:41,432 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 100 states to 100 states and 452 transitions. [2019-01-31 14:44:41,432 INFO L78 Accepts]: Start accepts. Automaton has 100 states and 452 transitions. Word has length 6 [2019-01-31 14:44:41,433 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:44:41,433 INFO L480 AbstractCegarLoop]: Abstraction has 100 states and 452 transitions. [2019-01-31 14:44:41,433 INFO L481 AbstractCegarLoop]: Interpolant automaton has 7 states. [2019-01-31 14:44:41,433 INFO L276 IsEmpty]: Start isEmpty. Operand 100 states and 452 transitions. [2019-01-31 14:44:41,433 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:44:41,433 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:44:41,433 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:44:41,433 INFO L423 AbstractCegarLoop]: === Iteration 34 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:44:41,434 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:41,434 INFO L82 PathProgramCache]: Analyzing trace with hash 893472132, now seen corresponding path program 1 times [2019-01-31 14:44:41,434 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:44:41,434 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:41,434 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:41,435 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:41,435 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:44:41,438 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:41,676 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-31 14:44:41,677 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-31 14:44:41,678 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-31 14:44:41,679 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-31 14:44:41,680 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-31 14:44:41,680 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-31 14:44:41,681 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:44:41,681 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:41,681 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:44:41,681 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:44:41,682 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [20], [21] [2019-01-31 14:44:41,683 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:44:41,683 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:44:41,698 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:44:41,698 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-31 14:44:41,699 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:41,699 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:44:41,699 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:41,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 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-31 14:44:41,709 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:41,709 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:44:41,713 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:41,717 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:41,718 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:44:41,739 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-31 14:44:41,747 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:41,748 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-31 14:44:41,759 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:41,760 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:41,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-31 14:44:41,776 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:41,778 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:41,779 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:41,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-31 14:44:41,784 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:41,806 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:41,816 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:41,826 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:41,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-31 14:44:41,845 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-31 14:44:41,851 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:41,851 WARN L398 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-31 14:44:41,851 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:44:41,907 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:41,909 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:41,910 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:41,912 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:41,913 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:41,914 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:41,916 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:41,917 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:44:41,949 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:41,983 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:41,983 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:44:43,023 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:43,023 WARN L398 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-31 14:44:43,024 WARN L399 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-31 14:44:43,080 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:43,082 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:43,083 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:43,085 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:43,086 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:43,087 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:43,089 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:43,090 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:43,091 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:44:43,094 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-31 14:44:43,097 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:43,132 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:43,133 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-31 14:44:43,144 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:43,144 WARN L398 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-31 14:44:43,144 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_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-31 14:44:43,222 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:43,223 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:43,224 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:43,226 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:43,227 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:43,228 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:43,229 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:43,230 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:43,231 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:43,232 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-31 14:44:43,235 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:43,315 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:43,315 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-31 14:44:43,324 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:43,324 WARN L398 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-31 14:44:43,324 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 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-31 14:44:43,373 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-31 14:44:43,375 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-31 14:44:43,378 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-31 14:44:43,381 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-31 14:44:43,382 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-31 14:44:43,383 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-31 14:44:43,383 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:43,383 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:44:43,427 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-31 14:44:43,428 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-31 14:44:43,429 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-31 14:44:43,430 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-31 14:44:43,431 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-31 14:44:43,433 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-31 14:44:43,434 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:43,453 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:44:43,453 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-31 14:44:43,453 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:44:43,453 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-31 14:44:43,453 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:44:43,454 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:44:43,473 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-31 14:44:43,474 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:44:43,474 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:44:43,474 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:44:43,474 INFO L87 Difference]: Start difference. First operand 100 states and 452 transitions. Second operand 10 states. [2019-01-31 14:44:45,597 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:45,598 INFO L93 Difference]: Finished difference Result 153 states and 620 transitions. [2019-01-31 14:44:45,598 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-31 14:44:45,598 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-31 14:44:45,598 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:44:45,598 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:44:45,598 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 57 transitions. [2019-01-31 14:44:45,598 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:44:45,599 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 57 transitions. [2019-01-31 14:44:45,599 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 57 transitions. [2019-01-31 14:44:45,689 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-31 14:44:45,693 INFO L225 Difference]: With dead ends: 153 [2019-01-31 14:44:45,693 INFO L226 Difference]: Without dead ends: 152 [2019-01-31 14:44:45,694 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 45 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=89, Invalid=151, Unknown=0, NotChecked=0, Total=240 [2019-01-31 14:44:45,694 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 152 states. [2019-01-31 14:44:46,940 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 152 to 127. [2019-01-31 14:44:46,941 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:44:46,941 INFO L82 GeneralOperation]: Start isEquivalent. First operand 152 states. Second operand 127 states. [2019-01-31 14:44:46,941 INFO L74 IsIncluded]: Start isIncluded. First operand 152 states. Second operand 127 states. [2019-01-31 14:44:46,941 INFO L87 Difference]: Start difference. First operand 152 states. Second operand 127 states. [2019-01-31 14:44:46,946 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:46,946 INFO L93 Difference]: Finished difference Result 152 states and 617 transitions. [2019-01-31 14:44:46,946 INFO L276 IsEmpty]: Start isEmpty. Operand 152 states and 617 transitions. [2019-01-31 14:44:46,946 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:46,946 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:46,946 INFO L74 IsIncluded]: Start isIncluded. First operand 127 states. Second operand 152 states. [2019-01-31 14:44:46,946 INFO L87 Difference]: Start difference. First operand 127 states. Second operand 152 states. [2019-01-31 14:44:46,949 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:46,949 INFO L93 Difference]: Finished difference Result 152 states and 617 transitions. [2019-01-31 14:44:46,949 INFO L276 IsEmpty]: Start isEmpty. Operand 152 states and 617 transitions. [2019-01-31 14:44:46,950 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:46,950 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:46,950 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:44:46,950 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:44:46,950 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 127 states. [2019-01-31 14:44:46,954 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 127 states to 127 states and 589 transitions. [2019-01-31 14:44:46,954 INFO L78 Accepts]: Start accepts. Automaton has 127 states and 589 transitions. Word has length 6 [2019-01-31 14:44:46,954 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:44:46,954 INFO L480 AbstractCegarLoop]: Abstraction has 127 states and 589 transitions. [2019-01-31 14:44:46,954 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:44:46,954 INFO L276 IsEmpty]: Start isEmpty. Operand 127 states and 589 transitions. [2019-01-31 14:44:46,955 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:44:46,955 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:44:46,955 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:44:46,955 INFO L423 AbstractCegarLoop]: === Iteration 35 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:44:46,956 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:46,956 INFO L82 PathProgramCache]: Analyzing trace with hash 897235472, now seen corresponding path program 1 times [2019-01-31 14:44:46,956 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:44:46,956 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:46,956 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:46,957 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:46,957 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:44:46,960 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:47,093 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-31 14:44:47,094 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-31 14:44:47,095 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-31 14:44:47,096 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-31 14:44:47,096 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-31 14:44:47,097 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-31 14:44:47,097 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:44:47,098 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:47,098 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:44:47,098 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:44:47,098 INFO L207 CegarAbsIntRunner]: [0], [10], [16], [20], [22], [23] [2019-01-31 14:44:47,099 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:44:47,099 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:44:47,109 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:44:47,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-31 14:44:47,109 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:47,110 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:44:47,110 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:47,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 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-31 14:44:47,118 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:47,119 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:44:47,122 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:47,126 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:47,127 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:44:47,137 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-31 14:44:47,144 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-31 14:44:47,154 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:47,155 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-31 14:44:47,170 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:47,171 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:47,172 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 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-31 14:44:47,175 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:47,188 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:47,196 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:47,206 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:47,218 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:47,218 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:22, output treesize:27 [2019-01-31 14:44:47,222 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:47,223 WARN L398 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-31 14:44:47,223 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:44:47,272 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:47,273 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:47,274 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:47,275 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:47,276 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-31 14:44:47,279 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:47,296 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:47,296 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-31 14:44:57,342 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:57,342 WARN L398 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-31 14:44:57,343 WARN L399 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-31 14:44:57,447 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:57,449 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:57,450 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:57,451 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:57,452 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:57,453 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:44:57,454 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-31 14:44:57,456 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:57,478 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:57,479 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:34, output treesize:24 [2019-01-31 14:44:57,498 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:57,499 WARN L398 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-31 14:44:57,499 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_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-31 14:44:57,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]; {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-31 14:44:57,562 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-31 14:44:57,564 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-31 14:44:57,565 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-31 14:44:57,565 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-31 14:44:57,566 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-31 14:44:57,567 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:57,567 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:44:57,611 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-31 14:44:57,611 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-31 14:44:57,612 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-31 14:44:57,613 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-31 14:44:57,615 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-31 14:44:57,617 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-31 14:44:57,617 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:57,635 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:44:57,635 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:44:57,636 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:44:57,636 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-31 14:44:57,636 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:44:57,636 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:44:57,653 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-31 14:44:57,653 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:44:57,654 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:44:57,654 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=41, Invalid=69, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:44:57,654 INFO L87 Difference]: Start difference. First operand 127 states and 589 transitions. Second operand 8 states. [2019-01-31 14:44:59,445 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:59,445 INFO L93 Difference]: Finished difference Result 143 states and 607 transitions. [2019-01-31 14:44:59,445 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:44:59,445 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-31 14:44:59,445 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:44:59,445 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:44:59,446 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 42 transitions. [2019-01-31 14:44:59,446 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:44:59,446 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 42 transitions. [2019-01-31 14:44:59,446 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 42 transitions. [2019-01-31 14:44:59,505 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-31 14:44:59,508 INFO L225 Difference]: With dead ends: 143 [2019-01-31 14:44:59,508 INFO L226 Difference]: Without dead ends: 138 [2019-01-31 14:44:59,508 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-31 14:44:59,509 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 138 states. [2019-01-31 14:45:00,833 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 138 to 127. [2019-01-31 14:45:00,833 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:45:00,833 INFO L82 GeneralOperation]: Start isEquivalent. First operand 138 states. Second operand 127 states. [2019-01-31 14:45:00,834 INFO L74 IsIncluded]: Start isIncluded. First operand 138 states. Second operand 127 states. [2019-01-31 14:45:00,834 INFO L87 Difference]: Start difference. First operand 138 states. Second operand 127 states. [2019-01-31 14:45:00,837 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:00,837 INFO L93 Difference]: Finished difference Result 138 states and 601 transitions. [2019-01-31 14:45:00,838 INFO L276 IsEmpty]: Start isEmpty. Operand 138 states and 601 transitions. [2019-01-31 14:45:00,838 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:00,838 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:00,838 INFO L74 IsIncluded]: Start isIncluded. First operand 127 states. Second operand 138 states. [2019-01-31 14:45:00,838 INFO L87 Difference]: Start difference. First operand 127 states. Second operand 138 states. [2019-01-31 14:45:00,843 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:00,843 INFO L93 Difference]: Finished difference Result 138 states and 601 transitions. [2019-01-31 14:45:00,843 INFO L276 IsEmpty]: Start isEmpty. Operand 138 states and 601 transitions. [2019-01-31 14:45:00,843 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:00,843 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:00,843 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:45:00,844 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:45:00,844 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 127 states. [2019-01-31 14:45:00,846 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 127 states to 127 states and 588 transitions. [2019-01-31 14:45:00,846 INFO L78 Accepts]: Start accepts. Automaton has 127 states and 588 transitions. Word has length 6 [2019-01-31 14:45:00,847 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:45:00,847 INFO L480 AbstractCegarLoop]: Abstraction has 127 states and 588 transitions. [2019-01-31 14:45:00,847 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:45:00,847 INFO L276 IsEmpty]: Start isEmpty. Operand 127 states and 588 transitions. [2019-01-31 14:45:00,847 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:45:00,847 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:45:00,847 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:45:00,847 INFO L423 AbstractCegarLoop]: === Iteration 36 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:45:00,848 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:00,848 INFO L82 PathProgramCache]: Analyzing trace with hash 896931732, now seen corresponding path program 2 times [2019-01-31 14:45:00,848 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:45:00,848 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:00,849 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:45:00,849 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:00,849 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:45:00,853 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:01,152 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-31 14:45:01,153 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-31 14:45:01,154 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-31 14:45:01,155 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-31 14:45:01,155 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-31 14:45:01,156 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-31 14:45:01,156 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:45:01,156 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:01,157 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:45:01,157 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-31 14:45:01,157 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-31 14:45:01,157 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:01,157 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-31 14:45:01,166 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-31 14:45:01,166 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-31 14:45:01,171 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-31 14:45:01,171 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-31 14:45:01,174 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:01,175 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:45:01,188 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-31 14:45:01,195 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,196 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 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-31 14:45:01,205 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,206 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,207 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-31 14:45:01,220 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,221 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,222 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,223 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-31 14:45:01,226 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:01,245 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:01,256 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:01,266 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:01,283 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:01,284 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-31 14:45:01,290 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:01,290 WARN L398 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-31 14:45:01,290 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:45:01,337 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,338 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,339 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,341 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,342 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,343 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,344 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,345 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:45:01,348 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:01,380 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:01,381 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-31 14:45:01,395 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:01,395 WARN L398 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-31 14:45:01,395 WARN L399 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-31 14:45:01,442 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,444 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,445 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,446 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,447 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,449 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,450 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,451 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,452 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,453 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-31 14:45:01,456 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:01,494 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:01,495 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-31 14:45:01,566 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:01,566 WARN L398 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-31 14:45:01,566 WARN L399 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-31 14:45:01,621 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,622 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,623 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,625 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,626 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,627 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,628 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,629 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,630 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,632 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,632 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:45:01,633 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-31 14:45:01,636 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:01,673 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:01,674 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-31 14:45:01,684 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:01,685 WARN L398 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-31 14:45:01,685 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_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-31 14:45:01,773 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-31 14:45:01,776 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-31 14:45:01,778 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-31 14:45:01,780 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-31 14:45:01,781 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-31 14:45:01,781 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-31 14:45:01,782 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:01,782 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:45:01,842 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-31 14:45:01,842 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-31 14:45:01,843 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-31 14:45:01,845 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-31 14:45:01,846 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-31 14:45:01,849 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-31 14:45:01,849 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:01,868 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:45:01,868 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-31 14:45:01,868 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:45:01,868 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-31 14:45:01,868 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:45:01,868 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:45:01,904 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-31 14:45:01,904 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:45:01,905 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:45:01,905 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=59, Invalid=97, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:45:01,905 INFO L87 Difference]: Start difference. First operand 127 states and 588 transitions. Second operand 10 states. [2019-01-31 14:45:04,509 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:04,510 INFO L93 Difference]: Finished difference Result 196 states and 812 transitions. [2019-01-31 14:45:04,510 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-01-31 14:45:04,510 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-31 14:45:04,510 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:45:04,510 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:45:04,510 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 66 transitions. [2019-01-31 14:45:04,510 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:45:04,511 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 66 transitions. [2019-01-31 14:45:04,511 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 66 transitions. [2019-01-31 14:45:04,607 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-31 14:45:04,612 INFO L225 Difference]: With dead ends: 196 [2019-01-31 14:45:04,612 INFO L226 Difference]: Without dead ends: 195 [2019-01-31 14:45:04,613 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 40 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=77, Invalid=133, Unknown=0, NotChecked=0, Total=210 [2019-01-31 14:45:04,613 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 195 states. [2019-01-31 14:45:05,943 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 195 to 141. [2019-01-31 14:45:05,943 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:45:05,943 INFO L82 GeneralOperation]: Start isEquivalent. First operand 195 states. Second operand 141 states. [2019-01-31 14:45:05,943 INFO L74 IsIncluded]: Start isIncluded. First operand 195 states. Second operand 141 states. [2019-01-31 14:45:05,944 INFO L87 Difference]: Start difference. First operand 195 states. Second operand 141 states. [2019-01-31 14:45:05,950 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:05,951 INFO L93 Difference]: Finished difference Result 195 states and 809 transitions. [2019-01-31 14:45:05,951 INFO L276 IsEmpty]: Start isEmpty. Operand 195 states and 809 transitions. [2019-01-31 14:45:05,951 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:05,951 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:05,951 INFO L74 IsIncluded]: Start isIncluded. First operand 141 states. Second operand 195 states. [2019-01-31 14:45:05,952 INFO L87 Difference]: Start difference. First operand 141 states. Second operand 195 states. [2019-01-31 14:45:05,957 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:05,957 INFO L93 Difference]: Finished difference Result 195 states and 809 transitions. [2019-01-31 14:45:05,957 INFO L276 IsEmpty]: Start isEmpty. Operand 195 states and 809 transitions. [2019-01-31 14:45:05,957 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:05,957 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:05,957 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:45:05,957 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:45:05,957 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 141 states. [2019-01-31 14:45:05,960 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 141 states to 141 states and 664 transitions. [2019-01-31 14:45:05,960 INFO L78 Accepts]: Start accepts. Automaton has 141 states and 664 transitions. Word has length 6 [2019-01-31 14:45:05,960 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:45:05,960 INFO L480 AbstractCegarLoop]: Abstraction has 141 states and 664 transitions. [2019-01-31 14:45:05,960 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:45:05,961 INFO L276 IsEmpty]: Start isEmpty. Operand 141 states and 664 transitions. [2019-01-31 14:45:05,961 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:45:05,961 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:45:05,961 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:45:05,961 INFO L423 AbstractCegarLoop]: === Iteration 37 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:45:05,961 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:05,961 INFO L82 PathProgramCache]: Analyzing trace with hash 897162246, now seen corresponding path program 3 times [2019-01-31 14:45:05,961 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:45:05,962 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:05,962 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-31 14:45:05,962 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:05,962 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:45:05,965 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:06,491 WARN L181 SmtUtils]: Spent 187.00 ms on a formula simplification. DAG size of input: 41 DAG size of output: 21 [2019-01-31 14:45:06,618 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-31 14:45:06,619 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-31 14:45:06,620 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-31 14:45:06,621 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-31 14:45:06,622 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-31 14:45:06,623 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-31 14:45:06,623 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-31 14:45:06,624 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:06,624 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:45:06,624 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-31 14:45:06,624 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-31 14:45:06,624 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:06,624 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-31 14:45:06,632 INFO L103 rtionOrderModulation]: Keeping assertion order TERMS_WITH_SMALL_CONSTANTS_FIRST [2019-01-31 14:45:06,633 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder TERMS_WITH_SMALL_CONSTANTS_FIRST (IT: FPandBP) [2019-01-31 14:45:06,637 INFO L249 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2019-01-31 14:45:06,637 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-31 14:45:06,642 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:06,643 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:45:06,656 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-31 14:45:06,697 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:06,698 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-31 14:45:06,708 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:06,710 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:06,711 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-31 14:45:06,727 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:06,728 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:06,729 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:06,729 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 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-31 14:45:06,733 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:06,754 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:06,765 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:06,776 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:06,792 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:06,792 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-31 14:45:06,796 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:06,796 WARN L398 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-31 14:45:06,796 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:45:06,849 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:06,851 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:06,883 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:06,897 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:06,898 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:06,899 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:06,900 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:06,900 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:45:06,903 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:06,933 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:06,933 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-31 14:45:07,768 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:07,768 WARN L398 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-31 14:45:07,768 WARN L399 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-31 14:45:07,826 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,827 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,829 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,830 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,832 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,833 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,834 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,835 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,837 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:07,838 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-31 14:45:07,841 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:07,876 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:07,877 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-31 14:45:09,021 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:09,021 WARN L398 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-31 14:45:09,021 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (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-31 14:45:09,084 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:09,086 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:09,087 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:09,088 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:09,089 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:09,091 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:09,092 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:09,093 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:09,094 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:09,095 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:09,096 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:09,097 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:45:09,098 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-31 14:45:09,102 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:09,144 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:09,144 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-31 14:45:09,152 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:09,152 WARN L398 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-31 14:45:09,152 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (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-31 14:45:09,211 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:09,213 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:09,214 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:09,215 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:09,217 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:09,218 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:09,219 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:09,221 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:09,222 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:09,223 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:09,228 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:09,228 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:45:09,229 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-31 14:45:09,231 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:09,274 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:09,274 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-31 14:45:11,753 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:11,754 WARN L398 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-31 14:45:11,754 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (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-31 14:45:11,792 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-31 14:45:11,794 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-31 14:45:11,796 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-31 14:45:11,799 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-31 14:45:11,802 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-31 14:45:11,803 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-31 14:45:11,803 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-31 14:45:11,803 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:45:11,880 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-31 14:45:11,882 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-31 14:45:11,883 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-31 14:45:11,885 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-31 14:45:11,890 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-31 14:45:11,891 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-31 14:45:11,891 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-31 14:45:11,910 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:45:11,910 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 14 [2019-01-31 14:45:11,910 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:45:11,910 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-31 14:45:11,911 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:45:11,911 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-31 14:45:11,928 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-31 14:45:11,928 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-31 14:45:11,928 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-31 14:45:11,928 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=98, Invalid=142, Unknown=0, NotChecked=0, Total=240 [2019-01-31 14:45:11,928 INFO L87 Difference]: Start difference. First operand 141 states and 664 transitions. Second operand 12 states. [2019-01-31 14:45:14,850 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:14,850 INFO L93 Difference]: Finished difference Result 205 states and 871 transitions. [2019-01-31 14:45:14,851 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-01-31 14:45:14,851 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-31 14:45:14,851 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:45:14,851 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:45:14,851 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 66 transitions. [2019-01-31 14:45:14,851 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:45:14,852 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 66 transitions. [2019-01-31 14:45:14,852 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 66 transitions. [2019-01-31 14:45:14,966 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-31 14:45:14,972 INFO L225 Difference]: With dead ends: 205 [2019-01-31 14:45:14,972 INFO L226 Difference]: Without dead ends: 197 [2019-01-31 14:45:14,973 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 90 ImplicationChecksByTransitivity, 0.8s TimeCoverageRelationStatistics Valid=131, Invalid=211, Unknown=0, NotChecked=0, Total=342 [2019-01-31 14:45:14,973 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 197 states. [2019-01-31 14:45:16,619 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 197 to 149. [2019-01-31 14:45:16,620 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:45:16,620 INFO L82 GeneralOperation]: Start isEquivalent. First operand 197 states. Second operand 149 states. [2019-01-31 14:45:16,620 INFO L74 IsIncluded]: Start isIncluded. First operand 197 states. Second operand 149 states. [2019-01-31 14:45:16,620 INFO L87 Difference]: Start difference. First operand 197 states. Second operand 149 states. [2019-01-31 14:45:16,626 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:16,626 INFO L93 Difference]: Finished difference Result 197 states and 852 transitions. [2019-01-31 14:45:16,626 INFO L276 IsEmpty]: Start isEmpty. Operand 197 states and 852 transitions. [2019-01-31 14:45:16,626 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:16,626 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:16,626 INFO L74 IsIncluded]: Start isIncluded. First operand 149 states. Second operand 197 states. [2019-01-31 14:45:16,626 INFO L87 Difference]: Start difference. First operand 149 states. Second operand 197 states. [2019-01-31 14:45:16,631 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:16,631 INFO L93 Difference]: Finished difference Result 197 states and 852 transitions. [2019-01-31 14:45:16,631 INFO L276 IsEmpty]: Start isEmpty. Operand 197 states and 852 transitions. [2019-01-31 14:45:16,632 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:16,632 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:16,632 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:45:16,632 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:45:16,632 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 149 states. [2019-01-31 14:45:16,635 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 149 states to 149 states and 702 transitions. [2019-01-31 14:45:16,635 INFO L78 Accepts]: Start accepts. Automaton has 149 states and 702 transitions. Word has length 6 [2019-01-31 14:45:16,635 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:45:16,635 INFO L480 AbstractCegarLoop]: Abstraction has 149 states and 702 transitions. [2019-01-31 14:45:16,635 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-31 14:45:16,635 INFO L276 IsEmpty]: Start isEmpty. Operand 149 states and 702 transitions. [2019-01-31 14:45:16,636 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:45:16,636 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:45:16,636 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:45:16,636 INFO L423 AbstractCegarLoop]: === Iteration 38 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:45:16,636 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:16,636 INFO L82 PathProgramCache]: Analyzing trace with hash 900929556, now seen corresponding path program 1 times [2019-01-31 14:45:16,636 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:45:16,637 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:16,637 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-31 14:45:16,637 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:16,637 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:45:16,641 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:16,918 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-31 14:45:16,920 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-31 14:45:16,921 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-31 14:45:16,921 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-31 14:45:16,922 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-31 14:45:16,922 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-31 14:45:16,923 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:16,923 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:16,923 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:45:16,923 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:45:16,924 INFO L207 CegarAbsIntRunner]: [0], [14], [16], [20], [22], [23] [2019-01-31 14:45:16,925 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:45:16,925 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:45:16,934 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:45:16,934 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-31 14:45:16,934 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:16,934 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:45:16,935 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:16,935 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-31 14:45:16,945 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:45:16,945 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:45:16,949 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:16,951 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:16,951 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:45:16,961 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-31 14:45:16,967 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-31 14:45:16,974 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-31 14:45:16,991 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:16,992 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-31 14:45:16,994 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:17,006 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:17,016 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:17,025 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:17,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-31 14:45:17,037 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:19, output treesize:24 [2019-01-31 14:45:17,042 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:17,042 WARN L398 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-31 14:45:17,042 WARN L399 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-31 14:45:17,083 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:17,084 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:17,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, 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-31 14:45:17,087 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:17,097 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:17,098 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:24, output treesize:14 [2019-01-31 14:45:17,106 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:17,106 WARN L398 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-31 14:45:17,106 WARN L399 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-31 14:45:17,136 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:17,138 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:17,139 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:17,140 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:17,141 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 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-31 14:45:17,143 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:17,156 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:17,157 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:24, output treesize:14 [2019-01-31 14:45:27,220 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:27,221 WARN L398 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-31 14:45:27,221 WARN L399 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-31 14:45:27,274 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-31 14:45:27,275 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-31 14:45:27,276 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-31 14:45:27,277 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-31 14:45:27,278 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-31 14:45:27,279 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-31 14:45:27,279 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:27,280 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:45:27,378 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-31 14:45:27,379 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-31 14:45:27,380 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-31 14:45:27,381 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-31 14:45:27,382 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-31 14:45:27,384 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-31 14:45:27,384 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:27,403 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:45:27,403 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:45:27,403 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:45:27,403 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-31 14:45:27,403 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:45:27,403 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:45:27,418 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-31 14:45:27,418 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:45:27,418 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:45:27,419 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:45:27,419 INFO L87 Difference]: Start difference. First operand 149 states and 702 transitions. Second operand 8 states. [2019-01-31 14:45:29,324 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:29,324 INFO L93 Difference]: Finished difference Result 165 states and 720 transitions. [2019-01-31 14:45:29,325 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:45:29,325 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-31 14:45:29,325 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:45:29,325 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:45:29,325 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 46 transitions. [2019-01-31 14:45:29,325 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:45:29,326 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 46 transitions. [2019-01-31 14:45:29,326 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 46 transitions. [2019-01-31 14:45:29,383 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 46 edges. 46 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:45:29,387 INFO L225 Difference]: With dead ends: 165 [2019-01-31 14:45:29,387 INFO L226 Difference]: Without dead ends: 164 [2019-01-31 14:45:29,387 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 4 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-31 14:45:29,388 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 164 states. [2019-01-31 14:45:30,808 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 164 to 149. [2019-01-31 14:45:30,808 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:45:30,808 INFO L82 GeneralOperation]: Start isEquivalent. First operand 164 states. Second operand 149 states. [2019-01-31 14:45:30,809 INFO L74 IsIncluded]: Start isIncluded. First operand 164 states. Second operand 149 states. [2019-01-31 14:45:30,809 INFO L87 Difference]: Start difference. First operand 164 states. Second operand 149 states. [2019-01-31 14:45:30,815 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:30,815 INFO L93 Difference]: Finished difference Result 164 states and 718 transitions. [2019-01-31 14:45:30,815 INFO L276 IsEmpty]: Start isEmpty. Operand 164 states and 718 transitions. [2019-01-31 14:45:30,816 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:30,816 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:30,816 INFO L74 IsIncluded]: Start isIncluded. First operand 149 states. Second operand 164 states. [2019-01-31 14:45:30,816 INFO L87 Difference]: Start difference. First operand 149 states. Second operand 164 states. [2019-01-31 14:45:30,821 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:30,821 INFO L93 Difference]: Finished difference Result 164 states and 718 transitions. [2019-01-31 14:45:30,821 INFO L276 IsEmpty]: Start isEmpty. Operand 164 states and 718 transitions. [2019-01-31 14:45:30,821 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:30,822 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:30,822 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:45:30,822 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:45:30,822 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 149 states. [2019-01-31 14:45:30,826 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 149 states to 149 states and 702 transitions. [2019-01-31 14:45:30,826 INFO L78 Accepts]: Start accepts. Automaton has 149 states and 702 transitions. Word has length 6 [2019-01-31 14:45:30,827 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:45:30,827 INFO L480 AbstractCegarLoop]: Abstraction has 149 states and 702 transitions. [2019-01-31 14:45:30,827 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:45:30,827 INFO L276 IsEmpty]: Start isEmpty. Operand 149 states and 702 transitions. [2019-01-31 14:45:30,827 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:45:30,827 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:45:30,827 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:45:30,828 INFO L423 AbstractCegarLoop]: === Iteration 39 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:45:30,828 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:30,828 INFO L82 PathProgramCache]: Analyzing trace with hash 900750810, now seen corresponding path program 1 times [2019-01-31 14:45:30,828 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:45:30,829 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:30,829 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:45:30,829 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:30,829 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:45:30,832 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:30,964 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-31 14:45:30,965 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-31 14:45:30,966 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-31 14:45:30,966 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-31 14:45:30,967 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-31 14:45:30,967 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-31 14:45:30,967 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:30,968 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:30,968 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:45:30,968 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:45:30,968 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [20], [22], [23] [2019-01-31 14:45:30,968 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:45:30,969 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:45:30,979 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:45:30,980 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-31 14:45:30,980 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:30,980 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:45:30,980 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:30,980 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-31 14:45:30,991 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:45:30,991 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:45:30,996 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:31,001 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:31,001 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:45:31,015 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-31 14:45:31,022 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-31 14:45:31,031 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:31,032 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-31 14:45:31,045 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:31,047 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:31,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, 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-31 14:45:31,050 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:31,064 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:31,074 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:31,083 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:31,099 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:31,099 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:22, output treesize:27 [2019-01-31 14:45:31,105 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:31,105 WARN L398 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-31 14:45:31,105 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:45:31,172 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:31,173 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:31,174 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:31,175 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:31,175 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-31 14:45:31,177 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:31,197 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:31,197 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-31 14:45:31,205 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:31,205 WARN L398 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-31 14:45:31,206 WARN L399 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-31 14:45:31,244 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:31,245 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:31,246 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:31,248 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:31,249 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:31,250 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:31,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 26 treesize of output 48 [2019-01-31 14:45:31,277 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:31,298 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:31,298 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:32, output treesize:22 [2019-01-31 14:45:31,326 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:31,326 WARN L398 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-31 14:45:31,326 WARN L399 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-31 14:45:31,369 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-31 14:45:31,371 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-31 14:45:31,373 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-31 14:45:31,374 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-31 14:45:31,375 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-31 14:45:31,376 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-31 14:45:31,377 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:31,377 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:45:31,414 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-31 14:45:31,414 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-31 14:45:31,415 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-31 14:45:31,416 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-31 14:45:31,417 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-31 14:45:31,419 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-31 14:45:31,420 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:31,439 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:45:31,439 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:45:31,439 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:45:31,439 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-31 14:45:31,439 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:45:31,439 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:45:31,460 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-31 14:45:31,460 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:45:31,460 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:45:31,460 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:45:31,461 INFO L87 Difference]: Start difference. First operand 149 states and 702 transitions. Second operand 8 states. [2019-01-31 14:45:33,519 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:33,519 INFO L93 Difference]: Finished difference Result 174 states and 765 transitions. [2019-01-31 14:45:33,520 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:45:33,520 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-31 14:45:33,520 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:45:33,520 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:45:33,520 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 46 transitions. [2019-01-31 14:45:33,520 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:45:33,520 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 46 transitions. [2019-01-31 14:45:33,521 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 46 transitions. [2019-01-31 14:45:33,582 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 46 edges. 46 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:45:33,587 INFO L225 Difference]: With dead ends: 174 [2019-01-31 14:45:33,587 INFO L226 Difference]: Without dead ends: 173 [2019-01-31 14:45:33,587 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-31 14:45:33,587 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 173 states. [2019-01-31 14:45:35,101 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 173 to 158. [2019-01-31 14:45:35,101 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:45:35,102 INFO L82 GeneralOperation]: Start isEquivalent. First operand 173 states. Second operand 158 states. [2019-01-31 14:45:35,102 INFO L74 IsIncluded]: Start isIncluded. First operand 173 states. Second operand 158 states. [2019-01-31 14:45:35,102 INFO L87 Difference]: Start difference. First operand 173 states. Second operand 158 states. [2019-01-31 14:45:35,106 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:35,107 INFO L93 Difference]: Finished difference Result 173 states and 763 transitions. [2019-01-31 14:45:35,107 INFO L276 IsEmpty]: Start isEmpty. Operand 173 states and 763 transitions. [2019-01-31 14:45:35,107 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:35,107 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:35,107 INFO L74 IsIncluded]: Start isIncluded. First operand 158 states. Second operand 173 states. [2019-01-31 14:45:35,107 INFO L87 Difference]: Start difference. First operand 158 states. Second operand 173 states. [2019-01-31 14:45:35,111 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:35,111 INFO L93 Difference]: Finished difference Result 173 states and 763 transitions. [2019-01-31 14:45:35,111 INFO L276 IsEmpty]: Start isEmpty. Operand 173 states and 763 transitions. [2019-01-31 14:45:35,111 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:35,111 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:35,111 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:45:35,111 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:45:35,111 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 158 states. [2019-01-31 14:45:35,114 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 158 states to 158 states and 747 transitions. [2019-01-31 14:45:35,115 INFO L78 Accepts]: Start accepts. Automaton has 158 states and 747 transitions. Word has length 6 [2019-01-31 14:45:35,115 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:45:35,115 INFO L480 AbstractCegarLoop]: Abstraction has 158 states and 747 transitions. [2019-01-31 14:45:35,115 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:45:35,115 INFO L276 IsEmpty]: Start isEmpty. Operand 158 states and 747 transitions. [2019-01-31 14:45:35,115 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-31 14:45:35,115 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:45:35,115 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1] [2019-01-31 14:45:35,115 INFO L423 AbstractCegarLoop]: === Iteration 40 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:45:35,116 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:35,116 INFO L82 PathProgramCache]: Analyzing trace with hash -2078696478, now seen corresponding path program 1 times [2019-01-31 14:45:35,116 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:45:35,116 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:35,116 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:45:35,116 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:35,117 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:45:35,118 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:35,168 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-31 14:45:35,169 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-31 14:45:35,170 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-31 14:45:35,171 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-31 14:45:35,171 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-31 14:45:35,172 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-31 14:45:35,173 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-31 14:45:35,173 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:35,174 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:35,174 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:45:35,174 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-31 14:45:35,174 INFO L207 CegarAbsIntRunner]: [0], [16], [20], [22], [24], [25] [2019-01-31 14:45:35,176 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:45:35,176 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:45:35,207 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:45:35,207 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-31 14:45:35,207 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:35,207 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:45:35,207 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:35,208 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 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-31 14:45:35,216 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:45:35,216 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:45:35,220 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:35,224 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:35,224 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:45:35,232 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-31 14:45:35,263 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-31 14:45:35,386 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-31 14:45:35,400 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-31 14:45:35,421 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:35,528 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:35,536 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:35,546 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:35,556 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:35,556 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 4 variables, input treesize:15, output treesize:21 [2019-01-31 14:45:35,559 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:35,559 WARN L398 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-31 14:45:35,560 WARN L399 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-31 14:45:35,573 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:35,573 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-31 14:45:35,575 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:35,577 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:35,577 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:16, output treesize:5 [2019-01-31 14:45:35,589 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:35,589 WARN L398 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-31 14:45:35,589 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) [2019-01-31 14:45:35,603 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:35,604 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-31 14:45:35,605 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:35,608 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:35,608 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:18, output treesize:5 [2019-01-31 14:45:35,617 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:35,617 WARN L398 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-31 14:45:35,617 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (= (select |#memory_int| ULTIMATE.start_main_p4) (- 2)) [2019-01-31 14:45:35,631 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-31 14:45:35,632 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-31 14:45:35,633 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-31 14:45:35,633 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-31 14:45:35,633 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-31 14:45:35,634 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-31 14:45:35,634 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-31 14:45:35,634 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:35,634 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:45:35,668 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-31 14:45:35,668 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-31 14:45:35,669 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-31 14:45:35,669 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-31 14:45:35,670 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-31 14:45:35,671 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-31 14:45:35,673 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-31 14:45:35,673 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-31 14:45:35,693 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-01-31 14:45:35,693 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [3] imperfect sequences [3, 3] total 8 [2019-01-31 14:45:35,693 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-31 14:45:35,693 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 7 [2019-01-31 14:45:35,693 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:45:35,693 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states. [2019-01-31 14:45:35,702 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-31 14:45:35,702 INFO L459 AbstractCegarLoop]: Interpolant automaton has 5 states [2019-01-31 14:45:35,703 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2019-01-31 14:45:35,703 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=51, Unknown=0, NotChecked=0, Total=90 [2019-01-31 14:45:35,703 INFO L87 Difference]: Start difference. First operand 158 states and 747 transitions. Second operand 5 states. [2019-01-31 14:45:39,705 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:39,705 INFO L93 Difference]: Finished difference Result 357 states and 1628 transitions. [2019-01-31 14:45:39,705 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-31 14:45:39,705 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 7 [2019-01-31 14:45:39,705 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:45:39,705 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2019-01-31 14:45:39,706 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 45 transitions. [2019-01-31 14:45:39,706 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2019-01-31 14:45:39,706 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 45 transitions. [2019-01-31 14:45:39,706 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 45 transitions. [2019-01-31 14:45:39,754 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-31 14:45:39,763 INFO L225 Difference]: With dead ends: 357 [2019-01-31 14:45:39,764 INFO L226 Difference]: Without dead ends: 353 [2019-01-31 14:45:39,764 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-31 14:45:39,764 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 353 states. [2019-01-31 14:45:44,377 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 353 to 329. [2019-01-31 14:45:44,378 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:45:44,378 INFO L82 GeneralOperation]: Start isEquivalent. First operand 353 states. Second operand 329 states. [2019-01-31 14:45:44,378 INFO L74 IsIncluded]: Start isIncluded. First operand 353 states. Second operand 329 states. [2019-01-31 14:45:44,378 INFO L87 Difference]: Start difference. First operand 353 states. Second operand 329 states. [2019-01-31 14:45:44,406 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:44,406 INFO L93 Difference]: Finished difference Result 353 states and 1611 transitions. [2019-01-31 14:45:44,406 INFO L276 IsEmpty]: Start isEmpty. Operand 353 states and 1611 transitions. [2019-01-31 14:45:44,407 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:44,407 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:44,407 INFO L74 IsIncluded]: Start isIncluded. First operand 329 states. Second operand 353 states. [2019-01-31 14:45:44,407 INFO L87 Difference]: Start difference. First operand 329 states. Second operand 353 states. [2019-01-31 14:45:44,416 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:44,416 INFO L93 Difference]: Finished difference Result 353 states and 1611 transitions. [2019-01-31 14:45:44,416 INFO L276 IsEmpty]: Start isEmpty. Operand 353 states and 1611 transitions. [2019-01-31 14:45:44,416 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:44,416 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:44,417 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:45:44,417 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:45:44,417 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 329 states. [2019-01-31 14:45:44,426 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 329 states to 329 states and 1593 transitions. [2019-01-31 14:45:44,426 INFO L78 Accepts]: Start accepts. Automaton has 329 states and 1593 transitions. Word has length 7 [2019-01-31 14:45:44,426 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:45:44,426 INFO L480 AbstractCegarLoop]: Abstraction has 329 states and 1593 transitions. [2019-01-31 14:45:44,426 INFO L481 AbstractCegarLoop]: Interpolant automaton has 5 states. [2019-01-31 14:45:44,426 INFO L276 IsEmpty]: Start isEmpty. Operand 329 states and 1593 transitions. [2019-01-31 14:45:44,427 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-31 14:45:44,427 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:45:44,427 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-31 14:45:44,427 INFO L423 AbstractCegarLoop]: === Iteration 41 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:45:44,427 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:44,427 INFO L82 PathProgramCache]: Analyzing trace with hash -2087931688, now seen corresponding path program 1 times [2019-01-31 14:45:44,428 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:45:44,428 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:44,428 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:45:44,428 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:44,428 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:45:44,430 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:44,559 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-31 14:45:44,560 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-31 14:45:44,561 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-31 14:45:44,562 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-31 14:45:44,562 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-31 14:45:44,563 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-31 14:45:44,563 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-31 14:45:44,564 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:44,564 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:44,564 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:45:44,564 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-31 14:45:44,565 INFO L207 CegarAbsIntRunner]: [0], [6], [16], [20], [22], [24], [25] [2019-01-31 14:45:44,566 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:45:44,566 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:45:44,575 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:45:44,575 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-31 14:45:44,576 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:44,576 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:45:44,576 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:44,576 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-31 14:45:44,586 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:45:44,586 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:45:44,590 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:44,593 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:44,594 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:45:44,624 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-31 14:45:44,639 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:44,639 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-31 14:45:44,652 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:44,653 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:44,653 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-31 14:45:44,668 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:44,669 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:44,670 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:44,671 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-31 14:45:44,675 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:44,695 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:44,707 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:44,716 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:44,735 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:44,735 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-31 14:45:44,742 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:44,742 WARN L398 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-31 14:45:44,743 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:45:44,799 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:44,800 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:44,802 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:44,803 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:44,805 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:44,806 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:44,807 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:44,808 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-31 14:45:44,813 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:44,843 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:44,844 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:45:44,850 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:44,851 WARN L398 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-31 14:45:44,851 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (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-31 14:45:44,905 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:44,906 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:44,908 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:44,909 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:44,910 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:44,911 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:44,913 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:44,914 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:44,915 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:44,916 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-31 14:45:44,920 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:44,957 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:44,957 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-31 14:45:44,966 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:44,966 WARN L398 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-31 14:45:44,967 WARN L399 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-31 14:45:45,050 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-31 14:45:45,052 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-31 14:45:45,053 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-31 14:45:45,054 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-31 14:45:45,055 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-31 14:45:45,056 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-31 14:45:45,057 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-31 14:45:45,057 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:45,058 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:45:45,104 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-31 14:45:45,105 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-31 14:45:45,106 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-31 14:45:45,106 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-31 14:45:45,107 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-31 14:45:45,109 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-31 14:45:45,111 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-31 14:45:45,111 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:45,131 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:45:45,131 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:45:45,131 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:45:45,131 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 7 [2019-01-31 14:45:45,131 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:45:45,131 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:45:45,155 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-31 14:45:45,155 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:45:45,155 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:45:45,156 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:45:45,156 INFO L87 Difference]: Start difference. First operand 329 states and 1593 transitions. Second operand 8 states. [2019-01-31 14:45:51,853 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:51,853 INFO L93 Difference]: Finished difference Result 348 states and 1627 transitions. [2019-01-31 14:45:51,853 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:45:51,853 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 7 [2019-01-31 14:45:51,853 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:45:51,853 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:45:51,854 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 45 transitions. [2019-01-31 14:45:51,854 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:45:51,854 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 45 transitions. [2019-01-31 14:45:51,854 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 45 transitions. [2019-01-31 14:45:51,928 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-31 14:45:51,937 INFO L225 Difference]: With dead ends: 348 [2019-01-31 14:45:51,938 INFO L226 Difference]: Without dead ends: 338 [2019-01-31 14:45:51,938 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-31 14:45:51,938 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 338 states. [2019-01-31 14:45:59,370 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 338 to 333. [2019-01-31 14:45:59,370 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:45:59,370 INFO L82 GeneralOperation]: Start isEquivalent. First operand 338 states. Second operand 333 states. [2019-01-31 14:45:59,370 INFO L74 IsIncluded]: Start isIncluded. First operand 338 states. Second operand 333 states. [2019-01-31 14:45:59,370 INFO L87 Difference]: Start difference. First operand 338 states. Second operand 333 states. [2019-01-31 14:45:59,380 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:59,380 INFO L93 Difference]: Finished difference Result 338 states and 1608 transitions. [2019-01-31 14:45:59,380 INFO L276 IsEmpty]: Start isEmpty. Operand 338 states and 1608 transitions. [2019-01-31 14:45:59,381 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:59,381 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:59,381 INFO L74 IsIncluded]: Start isIncluded. First operand 333 states. Second operand 338 states. [2019-01-31 14:45:59,381 INFO L87 Difference]: Start difference. First operand 333 states. Second operand 338 states. [2019-01-31 14:45:59,389 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:59,389 INFO L93 Difference]: Finished difference Result 338 states and 1608 transitions. [2019-01-31 14:45:59,390 INFO L276 IsEmpty]: Start isEmpty. Operand 338 states and 1608 transitions. [2019-01-31 14:45:59,390 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:59,390 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:59,390 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:45:59,390 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:45:59,390 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 333 states. [2019-01-31 14:45:59,398 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 333 states to 333 states and 1604 transitions. [2019-01-31 14:45:59,398 INFO L78 Accepts]: Start accepts. Automaton has 333 states and 1604 transitions. Word has length 7 [2019-01-31 14:45:59,398 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:45:59,399 INFO L480 AbstractCegarLoop]: Abstraction has 333 states and 1604 transitions. [2019-01-31 14:45:59,399 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:45:59,399 INFO L276 IsEmpty]: Start isEmpty. Operand 333 states and 1604 transitions. [2019-01-31 14:45:59,399 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-31 14:45:59,399 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:45:59,399 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-31 14:45:59,399 INFO L423 AbstractCegarLoop]: === Iteration 42 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:45:59,400 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:59,400 INFO L82 PathProgramCache]: Analyzing trace with hash -2088231584, now seen corresponding path program 1 times [2019-01-31 14:45:59,400 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:45:59,400 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:59,400 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:45:59,400 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:59,401 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:45:59,403 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:00,053 WARN L181 SmtUtils]: Spent 257.00 ms on a formula simplification. DAG size of input: 39 DAG size of output: 21 [2019-01-31 14:46:00,222 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-31 14:46:00,224 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-31 14:46:00,225 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-31 14:46:00,226 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-31 14:46:00,227 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-31 14:46:00,227 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-31 14:46:00,228 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-31 14:46:00,229 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:46:00,229 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:46:00,229 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:46:00,229 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-31 14:46:00,229 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [16], [20], [22], [23] [2019-01-31 14:46:00,230 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:46:00,231 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:46:00,241 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:46:00,241 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-31 14:46:00,241 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:46:00,241 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:46:00,242 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:46:00,242 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-31 14:46:00,251 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:46:00,252 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:46:00,259 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:00,265 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:00,266 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:46:00,312 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-31 14:46:00,323 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,324 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 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-31 14:46:00,341 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,343 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,344 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-31 14:46:00,363 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,365 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,366 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,367 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-31 14:46:00,374 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:00,397 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:00,410 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:00,422 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:00,441 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:00,441 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-31 14:46:00,446 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:00,446 WARN L398 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-31 14:46:00,446 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:46:00,517 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,518 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,520 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,521 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,522 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,523 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,525 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,526 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-31 14:46:00,533 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:00,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-31 14:46:00,567 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-31 14:46:10,586 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:10,586 WARN L398 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-31 14:46:10,587 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (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-31 14:46:10,807 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:10,808 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:10,809 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:10,811 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:10,812 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:10,813 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:10,815 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:10,816 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:10,817 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:10,818 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-31 14:46:10,826 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:10,864 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:10,865 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-31 14:46:12,383 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:12,384 WARN L398 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-31 14:46:12,384 WARN L399 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-31 14:46:12,461 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:12,463 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:12,464 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:12,465 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:12,467 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:12,468 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:12,469 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:12,471 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:12,471 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:46:12,472 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:12,473 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-31 14:46:12,483 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:12,540 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:12,541 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:30 [2019-01-31 14:46:12,568 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:12,568 WARN L398 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-31 14:46:12,569 WARN L399 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-31 14:46:12,658 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-31 14:46:12,660 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-31 14:46:12,662 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-31 14:46:12,665 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-31 14:46:12,666 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-31 14:46:12,667 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-31 14:46:12,668 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-31 14:46:12,669 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:46:12,669 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:46:12,756 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-31 14:46:12,757 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-31 14:46:12,757 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-31 14:46:12,758 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-31 14:46:12,760 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-31 14:46:12,763 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-31 14:46:12,765 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-31 14:46:12,766 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:46:12,787 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:46:12,787 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-31 14:46:12,787 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:46:12,787 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-31 14:46:12,787 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:46:12,787 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:46:12,811 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-31 14:46:12,811 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:46:12,811 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:46:12,812 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=66, Invalid=116, Unknown=0, NotChecked=0, Total=182 [2019-01-31 14:46:12,812 INFO L87 Difference]: Start difference. First operand 333 states and 1604 transitions. Second operand 10 states. [2019-01-31 14:46:20,752 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:20,752 INFO L93 Difference]: Finished difference Result 348 states and 1634 transitions. [2019-01-31 14:46:20,752 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:46:20,752 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-31 14:46:20,752 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:46:20,752 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:46:20,752 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 40 transitions. [2019-01-31 14:46:20,753 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:46:20,753 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 40 transitions. [2019-01-31 14:46:20,753 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 40 transitions. [2019-01-31 14:46:20,822 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-31 14:46:20,831 INFO L225 Difference]: With dead ends: 348 [2019-01-31 14:46:20,831 INFO L226 Difference]: Without dead ends: 343 [2019-01-31 14:46:20,831 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 21 GetRequests, 4 SyntacticMatches, 2 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 63 ImplicationChecksByTransitivity, 1.0s TimeCoverageRelationStatistics Valid=99, Invalid=173, Unknown=0, NotChecked=0, Total=272 [2019-01-31 14:46:20,831 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 343 states. [2019-01-31 14:46:27,661 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 343 to 334. [2019-01-31 14:46:27,662 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:46:27,662 INFO L82 GeneralOperation]: Start isEquivalent. First operand 343 states. Second operand 334 states. [2019-01-31 14:46:27,662 INFO L74 IsIncluded]: Start isIncluded. First operand 343 states. Second operand 334 states. [2019-01-31 14:46:27,662 INFO L87 Difference]: Start difference. First operand 343 states. Second operand 334 states. [2019-01-31 14:46:27,672 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:27,673 INFO L93 Difference]: Finished difference Result 343 states and 1623 transitions. [2019-01-31 14:46:27,673 INFO L276 IsEmpty]: Start isEmpty. Operand 343 states and 1623 transitions. [2019-01-31 14:46:27,673 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:46:27,673 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:46:27,673 INFO L74 IsIncluded]: Start isIncluded. First operand 334 states. Second operand 343 states. [2019-01-31 14:46:27,673 INFO L87 Difference]: Start difference. First operand 334 states. Second operand 343 states. [2019-01-31 14:46:27,685 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:27,685 INFO L93 Difference]: Finished difference Result 343 states and 1623 transitions. [2019-01-31 14:46:27,685 INFO L276 IsEmpty]: Start isEmpty. Operand 343 states and 1623 transitions. [2019-01-31 14:46:27,686 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:46:27,686 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:46:27,686 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:46:27,686 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:46:27,686 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 334 states. [2019-01-31 14:46:27,694 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 334 states to 334 states and 1603 transitions. [2019-01-31 14:46:27,694 INFO L78 Accepts]: Start accepts. Automaton has 334 states and 1603 transitions. Word has length 7 [2019-01-31 14:46:27,695 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:46:27,695 INFO L480 AbstractCegarLoop]: Abstraction has 334 states and 1603 transitions. [2019-01-31 14:46:27,695 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:46:27,695 INFO L276 IsEmpty]: Start isEmpty. Operand 334 states and 1603 transitions. [2019-01-31 14:46:27,695 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-31 14:46:27,695 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:46:27,695 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-31 14:46:27,695 INFO L423 AbstractCegarLoop]: === Iteration 43 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:46:27,696 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:46:27,696 INFO L82 PathProgramCache]: Analyzing trace with hash -2088122094, now seen corresponding path program 1 times [2019-01-31 14:46:27,696 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:46:27,696 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:46:27,696 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:46:27,697 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:46:27,697 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:46:27,700 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:28,005 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-31 14:46:28,006 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-31 14:46:28,007 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-31 14:46:28,008 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-31 14:46:28,009 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-31 14:46:28,010 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-31 14:46:28,010 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-31 14:46:28,011 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-31 14:46:28,011 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:46:28,011 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:46:28,011 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-31 14:46:28,012 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [16], [20], [21] [2019-01-31 14:46:28,012 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:46:28,013 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:46:28,021 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:46:28,021 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-31 14:46:28,021 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:46:28,022 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:46:28,022 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:46:28,022 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-31 14:46:28,032 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:46:28,032 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:46:28,036 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:28,044 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:28,044 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:46:28,060 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-31 14:46:28,070 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,070 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-31 14:46:28,083 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,084 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,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-31 14:46:28,102 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,104 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,105 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,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-31 14:46:28,111 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:28,132 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:28,144 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:28,154 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:28,170 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:28,170 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-31 14:46:28,175 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:28,175 WARN L398 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-31 14:46:28,176 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:46:28,234 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,236 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,237 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,238 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,239 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,241 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,242 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,243 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-31 14:46:28,249 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:28,283 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:28,283 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-31 14:46:28,671 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:28,672 WARN L398 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-31 14:46:28,672 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (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-31 14:46:28,735 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,737 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,738 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,740 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,741 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,742 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,744 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,745 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,746 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,747 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-31 14:46:28,753 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:28,807 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:28,808 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-31 14:46:28,854 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:28,854 WARN L398 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-31 14:46:28,854 WARN L399 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-31 14:46:28,920 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,921 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,922 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,924 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,925 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,926 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,927 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,928 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,929 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,930 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:28,931 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:46:28,932 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-31 14:46:28,937 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:28,977 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:28,977 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-31 14:46:31,664 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:31,665 WARN L398 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-31 14:46:31,665 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (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-31 14:46:31,736 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:31,737 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:31,739 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:31,740 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:31,741 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:31,743 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:31,744 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:31,745 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:31,746 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:46:31,747 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:31,748 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-31 14:46:31,754 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:31,793 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:31,793 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:30 [2019-01-31 14:46:31,803 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:31,803 WARN L398 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-31 14:46:31,804 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 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-31 14:46:31,867 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-31 14:46:31,869 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-31 14:46:31,870 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-31 14:46:31,872 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-31 14:46:31,874 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-31 14:46:31,874 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-31 14:46:31,875 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-31 14:46:31,876 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-31 14:46:31,876 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:46:31,973 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-31 14:46:31,973 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-31 14:46:31,974 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-31 14:46:31,976 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-31 14:46:31,977 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-31 14:46:31,979 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-31 14:46:31,981 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-31 14:46:31,982 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-31 14:46:32,017 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:46:32,018 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 14 [2019-01-31 14:46:32,018 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:46:32,018 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 7 [2019-01-31 14:46:32,018 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:46:32,018 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-31 14:46:32,051 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-31 14:46:32,051 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-31 14:46:32,052 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-31 14:46:32,052 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=91, Invalid=149, Unknown=0, NotChecked=0, Total=240 [2019-01-31 14:46:32,052 INFO L87 Difference]: Start difference. First operand 334 states and 1603 transitions. Second operand 12 states. [2019-01-31 14:46:41,220 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:41,220 INFO L93 Difference]: Finished difference Result 457 states and 2102 transitions. [2019-01-31 14:46:41,220 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-01-31 14:46:41,220 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 7 [2019-01-31 14:46:41,220 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:46:41,220 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:46:41,221 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 62 transitions. [2019-01-31 14:46:41,221 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:46:41,221 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 62 transitions. [2019-01-31 14:46:41,221 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 62 transitions. [2019-01-31 14:46:41,323 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-31 14:46:41,337 INFO L225 Difference]: With dead ends: 457 [2019-01-31 14:46:41,337 INFO L226 Difference]: Without dead ends: 456 [2019-01-31 14:46:41,337 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 22 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 18 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 82 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=136, Invalid=244, Unknown=0, NotChecked=0, Total=380 [2019-01-31 14:46:41,338 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 456 states. [2019-01-31 14:46:47,686 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 456 to 329. [2019-01-31 14:46:47,686 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:46:47,686 INFO L82 GeneralOperation]: Start isEquivalent. First operand 456 states. Second operand 329 states. [2019-01-31 14:46:47,686 INFO L74 IsIncluded]: Start isIncluded. First operand 456 states. Second operand 329 states. [2019-01-31 14:46:47,687 INFO L87 Difference]: Start difference. First operand 456 states. Second operand 329 states. [2019-01-31 14:46:47,701 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:47,702 INFO L93 Difference]: Finished difference Result 456 states and 2098 transitions. [2019-01-31 14:46:47,702 INFO L276 IsEmpty]: Start isEmpty. Operand 456 states and 2098 transitions. [2019-01-31 14:46:47,702 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:46:47,703 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:46:47,703 INFO L74 IsIncluded]: Start isIncluded. First operand 329 states. Second operand 456 states. [2019-01-31 14:46:47,703 INFO L87 Difference]: Start difference. First operand 329 states. Second operand 456 states. [2019-01-31 14:46:47,722 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:47,723 INFO L93 Difference]: Finished difference Result 456 states and 2098 transitions. [2019-01-31 14:46:47,723 INFO L276 IsEmpty]: Start isEmpty. Operand 456 states and 2098 transitions. [2019-01-31 14:46:47,724 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:46:47,724 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:46:47,724 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:46:47,724 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:46:47,724 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 329 states. [2019-01-31 14:46:47,736 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 329 states to 329 states and 1582 transitions. [2019-01-31 14:46:47,736 INFO L78 Accepts]: Start accepts. Automaton has 329 states and 1582 transitions. Word has length 7 [2019-01-31 14:46:47,736 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:46:47,737 INFO L480 AbstractCegarLoop]: Abstraction has 329 states and 1582 transitions. [2019-01-31 14:46:47,737 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-31 14:46:47,737 INFO L276 IsEmpty]: Start isEmpty. Operand 329 states and 1582 transitions. [2019-01-31 14:46:47,737 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-31 14:46:47,737 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:46:47,737 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-31 14:46:47,738 INFO L423 AbstractCegarLoop]: === Iteration 44 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:46:47,738 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:46:47,738 INFO L82 PathProgramCache]: Analyzing trace with hash -2084662494, now seen corresponding path program 2 times [2019-01-31 14:46:47,738 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:46:47,739 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:46:47,739 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:46:47,739 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:46:47,739 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:46:47,742 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:48,118 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-31 14:46:48,120 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-31 14:46:48,121 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-31 14:46:48,122 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-31 14:46:48,123 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-31 14:46:48,123 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-31 14:46:48,124 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-31 14:46:48,125 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-31 14:46:48,125 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:46:48,125 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:46:48,125 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-31 14:46:48,125 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-31 14:46:48,126 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:46:48,126 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-31 14:46:48,134 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-31 14:46:48,134 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-31 14:46:48,145 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-31 14:46:48,145 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-31 14:46:48,148 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:48,148 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:46:48,172 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-31 14:46:48,182 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:48,183 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-31 14:46:48,202 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:48,204 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:48,204 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-31 14:46:48,225 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:48,226 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:48,228 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:48,229 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-31 14:46:48,238 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:48,263 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:48,275 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:48,285 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:48,301 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:48,302 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-31 14:46:48,307 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:48,307 WARN L398 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-31 14:46:48,307 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:46:48,370 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:48,371 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:48,372 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:48,373 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:48,374 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:48,375 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:48,376 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:48,377 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-31 14:46:48,384 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:48,414 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:48,415 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-31 14:46:58,486 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:58,486 WARN L398 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-31 14:46:58,486 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (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-31 14:46:58,571 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:58,572 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:58,573 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:58,575 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:58,576 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:58,578 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:58,579 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:58,579 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:46:58,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, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 60 [2019-01-31 14:46:58,587 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:58,622 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:58,622 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:42, output treesize:30 [2019-01-31 14:46:58,637 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:58,638 WARN L398 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-31 14:46:58,638 WARN L399 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-31 14:46:58,707 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:58,708 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:58,710 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:58,711 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:58,712 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:58,713 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:58,714 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:58,715 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:58,717 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:58,718 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-31 14:46:58,724 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:58,758 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:58,758 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:44, output treesize:34 [2019-01-31 14:47:03,067 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:03,068 WARN L398 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-31 14:47:03,068 WARN L399 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-31 14:47:03,144 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:03,146 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:03,147 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:03,148 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:03,150 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:03,151 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:03,152 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:03,153 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:03,154 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:03,155 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:03,156 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:47:03,157 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-31 14:47:03,163 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:03,207 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:03,207 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-01-31 14:47:03,224 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:03,224 WARN L398 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-31 14:47:03,224 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (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-31 14:47:03,283 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-31 14:47:03,285 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-31 14:47:03,287 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-31 14:47:03,290 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-31 14:47:03,292 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-31 14:47:03,293 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-31 14:47:03,294 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-31 14:47:03,295 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-31 14:47:03,295 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:47:03,412 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-31 14:47:03,413 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-31 14:47:03,414 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-31 14:47:03,416 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-31 14:47:03,417 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-31 14:47:03,420 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-31 14:47:03,422 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-31 14:47:03,423 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-31 14:47:03,444 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:47:03,444 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 5, 5] total 14 [2019-01-31 14:47:03,444 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:47:03,444 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 7 [2019-01-31 14:47:03,444 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:47:03,445 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states. [2019-01-31 14:47:03,473 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-31 14:47:03,473 INFO L459 AbstractCegarLoop]: Interpolant automaton has 11 states [2019-01-31 14:47:03,473 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2019-01-31 14:47:03,473 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=89, Invalid=151, Unknown=0, NotChecked=0, Total=240 [2019-01-31 14:47:03,473 INFO L87 Difference]: Start difference. First operand 329 states and 1582 transitions. Second operand 11 states. [2019-01-31 14:47:11,479 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:11,480 INFO L93 Difference]: Finished difference Result 346 states and 1608 transitions. [2019-01-31 14:47:11,480 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-31 14:47:11,480 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 7 [2019-01-31 14:47:11,480 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:47:11,480 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2019-01-31 14:47:11,480 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 47 transitions. [2019-01-31 14:47:11,480 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2019-01-31 14:47:11,481 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 47 transitions. [2019-01-31 14:47:11,481 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 47 transitions. [2019-01-31 14:47:11,573 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-31 14:47:11,583 INFO L225 Difference]: With dead ends: 346 [2019-01-31 14:47:11,583 INFO L226 Difference]: Without dead ends: 345 [2019-01-31 14:47:11,584 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 21 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 90 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=119, Invalid=223, Unknown=0, NotChecked=0, Total=342 [2019-01-31 14:47:11,584 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 345 states. [2019-01-31 14:47:16,202 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 345 to 213. [2019-01-31 14:47:16,202 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:47:16,202 INFO L82 GeneralOperation]: Start isEquivalent. First operand 345 states. Second operand 213 states. [2019-01-31 14:47:16,203 INFO L74 IsIncluded]: Start isIncluded. First operand 345 states. Second operand 213 states. [2019-01-31 14:47:16,203 INFO L87 Difference]: Start difference. First operand 345 states. Second operand 213 states. [2019-01-31 14:47:16,213 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:16,213 INFO L93 Difference]: Finished difference Result 345 states and 1604 transitions. [2019-01-31 14:47:16,213 INFO L276 IsEmpty]: Start isEmpty. Operand 345 states and 1604 transitions. [2019-01-31 14:47:16,214 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:47:16,214 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:47:16,214 INFO L74 IsIncluded]: Start isIncluded. First operand 213 states. Second operand 345 states. [2019-01-31 14:47:16,214 INFO L87 Difference]: Start difference. First operand 213 states. Second operand 345 states. [2019-01-31 14:47:16,223 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:16,223 INFO L93 Difference]: Finished difference Result 345 states and 1604 transitions. [2019-01-31 14:47:16,223 INFO L276 IsEmpty]: Start isEmpty. Operand 345 states and 1604 transitions. [2019-01-31 14:47:16,223 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:47:16,223 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:47:16,223 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:47:16,223 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:47:16,224 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 213 states. [2019-01-31 14:47:16,228 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 213 states to 213 states and 1003 transitions. [2019-01-31 14:47:16,228 INFO L78 Accepts]: Start accepts. Automaton has 213 states and 1003 transitions. Word has length 7 [2019-01-31 14:47:16,228 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:47:16,228 INFO L480 AbstractCegarLoop]: Abstraction has 213 states and 1003 transitions. [2019-01-31 14:47:16,228 INFO L481 AbstractCegarLoop]: Interpolant automaton has 11 states. [2019-01-31 14:47:16,228 INFO L276 IsEmpty]: Start isEmpty. Operand 213 states and 1003 transitions. [2019-01-31 14:47:16,229 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-31 14:47:16,229 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:47:16,229 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-31 14:47:16,229 INFO L423 AbstractCegarLoop]: === Iteration 45 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:47:16,229 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:47:16,229 INFO L82 PathProgramCache]: Analyzing trace with hash -2084418336, now seen corresponding path program 1 times [2019-01-31 14:47:16,229 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:47:16,230 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:47:16,230 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-31 14:47:16,230 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:47:16,230 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:47:16,234 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:16,429 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-31 14:47:16,430 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-31 14:47:16,431 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-31 14:47:16,432 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-31 14:47:16,432 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-31 14:47:16,433 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-31 14:47:16,433 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-31 14:47:16,433 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:47:16,434 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:47:16,434 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:47:16,434 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-31 14:47:16,434 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [16], [20], [22], [23] [2019-01-31 14:47:16,436 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:47:16,436 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:47:16,447 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:47:16,447 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-31 14:47:16,447 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:47:16,447 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:47:16,447 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:47:16,448 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-31 14:47:16,457 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:47:16,457 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:47:16,462 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:16,464 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:16,465 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:47:16,498 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-31 14:47:16,507 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-31 14:47:16,517 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:16,518 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-31 14:47:16,533 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:16,534 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:16,535 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-31 14:47:16,539 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:16,553 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:16,562 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:16,572 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:16,584 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:16,584 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:22, output treesize:27 [2019-01-31 14:47:16,589 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:16,590 WARN L398 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-31 14:47:16,590 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:47:16,644 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:16,646 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:16,647 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:16,648 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:16,649 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 28 [2019-01-31 14:47:16,652 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:16,672 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:16,673 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-31 14:47:26,698 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:26,699 WARN L398 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-31 14:47:26,699 WARN L399 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-31 14:47:26,753 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:26,755 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:26,756 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:26,757 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:26,757 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:47:26,758 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-31 14:47:26,762 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:26,784 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:26,784 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:34, output treesize:22 [2019-01-31 14:47:26,824 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:26,825 WARN L398 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-31 14:47:26,825 WARN L399 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-31 14:47:26,885 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:26,887 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:26,888 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:26,889 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:26,890 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:26,892 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:26,892 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-31 14:47:26,897 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:26,919 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:26,919 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:36, output treesize:26 [2019-01-31 14:47:26,926 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:26,926 WARN L398 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-31 14:47:26,927 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_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-31 14:47:27,002 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-31 14:47:27,004 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-31 14:47:27,006 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-31 14:47:27,008 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-31 14:47:27,009 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-31 14:47:27,028 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-31 14:47:27,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-31 14:47:27,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-31 14:47:27,032 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:47:27,087 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-31 14:47:27,087 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-31 14:47:27,088 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-31 14:47:27,089 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-31 14:47:27,090 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-31 14:47:27,091 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-31 14:47:27,093 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-31 14:47:27,094 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:27,114 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:47:27,114 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-31 14:47:27,114 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:47:27,114 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-31 14:47:27,114 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:47:27,114 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:47:27,135 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-31 14:47:27,135 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:47:27,135 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:47:27,135 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=63, Invalid=93, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:47:27,135 INFO L87 Difference]: Start difference. First operand 213 states and 1003 transitions. Second operand 10 states. [2019-01-31 14:47:33,469 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:33,469 INFO L93 Difference]: Finished difference Result 280 states and 1278 transitions. [2019-01-31 14:47:33,469 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-31 14:47:33,469 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-31 14:47:33,470 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:47:33,470 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:47:33,470 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 45 transitions. [2019-01-31 14:47:33,470 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:47:33,470 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 45 transitions. [2019-01-31 14:47:33,470 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 45 transitions. [2019-01-31 14:47:33,538 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-31 14:47:33,545 INFO L225 Difference]: With dead ends: 280 [2019-01-31 14:47:33,545 INFO L226 Difference]: Without dead ends: 277 [2019-01-31 14:47:33,545 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-31 14:47:33,546 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 277 states. [2019-01-31 14:47:38,943 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 277 to 242. [2019-01-31 14:47:38,943 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:47:38,943 INFO L82 GeneralOperation]: Start isEquivalent. First operand 277 states. Second operand 242 states. [2019-01-31 14:47:38,944 INFO L74 IsIncluded]: Start isIncluded. First operand 277 states. Second operand 242 states. [2019-01-31 14:47:38,944 INFO L87 Difference]: Start difference. First operand 277 states. Second operand 242 states. [2019-01-31 14:47:38,951 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:38,952 INFO L93 Difference]: Finished difference Result 277 states and 1273 transitions. [2019-01-31 14:47:38,952 INFO L276 IsEmpty]: Start isEmpty. Operand 277 states and 1273 transitions. [2019-01-31 14:47:38,952 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:47:38,952 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:47:38,952 INFO L74 IsIncluded]: Start isIncluded. First operand 242 states. Second operand 277 states. [2019-01-31 14:47:38,952 INFO L87 Difference]: Start difference. First operand 242 states. Second operand 277 states. [2019-01-31 14:47:38,959 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:38,959 INFO L93 Difference]: Finished difference Result 277 states and 1273 transitions. [2019-01-31 14:47:38,959 INFO L276 IsEmpty]: Start isEmpty. Operand 277 states and 1273 transitions. [2019-01-31 14:47:38,959 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:47:38,960 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:47:38,960 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:47:38,960 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:47:38,960 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 242 states. [2019-01-31 14:47:38,965 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 242 states to 242 states and 1141 transitions. [2019-01-31 14:47:38,965 INFO L78 Accepts]: Start accepts. Automaton has 242 states and 1141 transitions. Word has length 7 [2019-01-31 14:47:38,965 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:47:38,965 INFO L480 AbstractCegarLoop]: Abstraction has 242 states and 1141 transitions. [2019-01-31 14:47:38,965 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:47:38,965 INFO L276 IsEmpty]: Start isEmpty. Operand 242 states and 1141 transitions. [2019-01-31 14:47:38,966 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-31 14:47:38,966 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:47:38,966 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-31 14:47:38,966 INFO L423 AbstractCegarLoop]: === Iteration 46 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:47:38,966 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:47:38,966 INFO L82 PathProgramCache]: Analyzing trace with hash -2080543520, now seen corresponding path program 1 times [2019-01-31 14:47:38,967 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:47:38,967 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:47:38,967 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:47:38,967 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:47:38,967 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:47:38,970 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:39,101 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-31 14:47:39,102 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-31 14:47:39,103 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-31 14:47:39,104 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-31 14:47:39,104 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-31 14:47:39,105 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-31 14:47:39,106 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-31 14:47:39,106 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:39,106 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:47:39,106 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:47:39,106 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-31 14:47:39,107 INFO L207 CegarAbsIntRunner]: [0], [14], [16], [20], [22], [24], [25] [2019-01-31 14:47:39,108 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:47:39,108 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:47:39,124 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:47:39,124 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-31 14:47:39,124 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:47:39,124 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:47:39,125 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:47:39,125 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-31 14:47:39,134 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:47:39,135 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:47:39,139 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:39,145 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:39,146 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:47:39,164 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 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-31 14:47:39,177 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 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-31 14:47:39,196 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-31 14:47:39,210 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:39,211 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 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-31 14:47:39,214 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:39,227 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:39,236 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:39,245 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:39,259 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:39,259 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:19, output treesize:24 [2019-01-31 14:47:39,264 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:39,264 WARN L398 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-31 14:47:39,265 WARN L399 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-31 14:47:39,303 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:39,305 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:39,305 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-31 14:47:39,309 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:39,316 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:39,316 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:24, output treesize:14 [2019-01-31 14:47:39,324 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:39,325 WARN L398 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-31 14:47:39,325 WARN L399 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-31 14:47:39,358 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:39,359 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:39,361 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:39,362 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:39,363 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-31 14:47:39,366 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:39,378 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:39,379 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:26, output treesize:16 [2019-01-31 14:47:39,390 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:39,390 WARN L398 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-31 14:47:39,390 WARN L399 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-31 14:47:39,442 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-31 14:47:39,444 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-31 14:47:39,445 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-31 14:47:39,446 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-31 14:47:39,447 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-31 14:47:39,447 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-31 14:47:39,448 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-31 14:47:39,449 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:39,449 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:47:39,487 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-31 14:47:39,487 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-31 14:47:39,488 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-31 14:47:39,488 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-31 14:47:39,490 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-31 14:47:39,491 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-31 14:47:39,493 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-31 14:47:39,493 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:39,513 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:47:39,513 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 3, 3] total 9 [2019-01-31 14:47:39,513 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:47:39,514 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 7 [2019-01-31 14:47:39,514 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:47:39,514 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states. [2019-01-31 14:47:39,542 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-31 14:47:39,542 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2019-01-31 14:47:39,542 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2019-01-31 14:47:39,542 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=46, Invalid=64, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:47:39,542 INFO L87 Difference]: Start difference. First operand 242 states and 1141 transitions. Second operand 9 states. [2019-01-31 14:47:48,346 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:48,346 INFO L93 Difference]: Finished difference Result 390 states and 1798 transitions. [2019-01-31 14:47:48,346 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-31 14:47:48,346 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 7 [2019-01-31 14:47:48,346 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:47:48,346 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-01-31 14:47:48,346 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 55 transitions. [2019-01-31 14:47:48,347 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-01-31 14:47:48,347 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 55 transitions. [2019-01-31 14:47:48,347 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 55 transitions. [2019-01-31 14:47:48,421 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-31 14:47:48,430 INFO L225 Difference]: With dead ends: 390 [2019-01-31 14:47:48,431 INFO L226 Difference]: Without dead ends: 377 [2019-01-31 14:47:48,431 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-31 14:47:48,431 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 377 states. [2019-01-31 14:47:56,469 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 377 to 367. [2019-01-31 14:47:56,469 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:47:56,470 INFO L82 GeneralOperation]: Start isEquivalent. First operand 377 states. Second operand 367 states. [2019-01-31 14:47:56,470 INFO L74 IsIncluded]: Start isIncluded. First operand 377 states. Second operand 367 states. [2019-01-31 14:47:56,470 INFO L87 Difference]: Start difference. First operand 377 states. Second operand 367 states. [2019-01-31 14:47:56,481 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:56,482 INFO L93 Difference]: Finished difference Result 377 states and 1660 transitions. [2019-01-31 14:47:56,482 INFO L276 IsEmpty]: Start isEmpty. Operand 377 states and 1660 transitions. [2019-01-31 14:47:56,482 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:47:56,482 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:47:56,482 INFO L74 IsIncluded]: Start isIncluded. First operand 367 states. Second operand 377 states. [2019-01-31 14:47:56,482 INFO L87 Difference]: Start difference. First operand 367 states. Second operand 377 states. [2019-01-31 14:47:56,492 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:56,492 INFO L93 Difference]: Finished difference Result 377 states and 1660 transitions. [2019-01-31 14:47:56,492 INFO L276 IsEmpty]: Start isEmpty. Operand 377 states and 1660 transitions. [2019-01-31 14:47:56,492 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:47:56,492 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:47:56,492 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:47:56,493 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:47:56,493 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 367 states. [2019-01-31 14:47:56,510 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 367 states to 367 states and 1654 transitions. [2019-01-31 14:47:56,510 INFO L78 Accepts]: Start accepts. Automaton has 367 states and 1654 transitions. Word has length 7 [2019-01-31 14:47:56,511 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:47:56,511 INFO L480 AbstractCegarLoop]: Abstraction has 367 states and 1654 transitions. [2019-01-31 14:47:56,511 INFO L481 AbstractCegarLoop]: Interpolant automaton has 9 states. [2019-01-31 14:47:56,511 INFO L276 IsEmpty]: Start isEmpty. Operand 367 states and 1654 transitions. [2019-01-31 14:47:56,511 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-31 14:47:56,511 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:47:56,511 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1] [2019-01-31 14:47:56,512 INFO L423 AbstractCegarLoop]: === Iteration 47 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:47:56,512 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:47:56,512 INFO L82 PathProgramCache]: Analyzing trace with hash -2080966800, now seen corresponding path program 4 times [2019-01-31 14:47:56,512 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:47:56,513 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:47:56,513 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:47:56,513 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:47:56,513 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:47:56,516 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:56,837 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-31 14:47:56,838 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-31 14:47:56,839 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-31 14:47:56,840 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-31 14:47:56,841 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-31 14:47:56,841 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-31 14:47:56,842 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-31 14:47:56,842 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-31 14:47:56,843 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:47:56,843 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:47:56,843 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-31 14:47:56,843 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-31 14:47:56,843 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:47:56,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 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-31 14:47:56,852 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:47:56,852 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:47:56,857 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:56,864 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:56,865 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:47:56,879 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-31 14:47:56,887 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:56,888 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-31 14:47:56,899 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:56,900 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:56,901 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-31 14:47:56,917 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:56,919 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:56,920 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:56,921 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-31 14:47:56,925 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:56,944 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:56,955 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:56,964 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:56,979 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:56,980 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-31 14:47:56,984 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:56,985 WARN L398 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-31 14:47:56,985 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:47:57,051 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,052 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,052 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,053 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,055 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,056 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,057 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,058 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-31 14:47:57,063 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:57,093 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:57,093 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:40, output treesize:30 [2019-01-31 14:47:57,111 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:57,112 WARN L398 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-31 14:47:57,112 WARN L399 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-31 14:47:57,174 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,175 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,177 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,178 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,179 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,181 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,182 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,183 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,184 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,185 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-31 14:47:57,190 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:57,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-31 14:47:57,224 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:42, output treesize:32 [2019-01-31 14:47:57,243 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:57,243 WARN L398 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-31 14:47:57,243 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (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-31 14:47:57,322 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,323 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,324 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,326 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,327 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,328 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,329 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,330 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,331 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,333 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,334 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,334 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:47:57,335 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-31 14:47:57,340 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:57,380 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:57,380 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:42, output treesize:32 [2019-01-31 14:47:57,394 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:57,394 WARN L398 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-31 14:47:57,394 WARN L399 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-31 14:47:57,456 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,457 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,459 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,460 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,462 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,463 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,464 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,465 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,467 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,468 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,469 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,470 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:57,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, 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-31 14:47:57,476 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:57,518 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:57,518 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:30 [2019-01-31 14:47:58,340 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:58,341 WARN L398 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-31 14:47:58,341 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 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-31 14:47:58,416 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,417 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,419 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,420 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,421 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,423 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,424 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,425 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,426 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,428 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,429 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,430 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,431 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-31 14:47:58,436 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:58,479 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:58,479 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-31 14:47:58,486 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:58,487 WARN L398 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-31 14:47:58,487 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 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-31 14:47:58,521 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-31 14:47:58,523 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-31 14:47:58,525 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-31 14:47:58,537 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-31 14:47:58,538 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-31 14:47:58,541 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-31 14:47:58,542 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-31 14:47:58,542 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-31 14:47:58,542 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:47:58,731 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-31 14:47:58,732 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-31 14:47:58,734 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-31 14:47:58,736 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-31 14:47:58,739 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-31 14:47:58,743 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-31 14:47:58,746 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-31 14:47:58,746 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-31 14:47:58,766 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:47:58,767 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 6, 6] total 17 [2019-01-31 14:47:58,767 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:47:58,767 INFO L78 Accepts]: Start accepts. Automaton has 13 states. Word has length 7 [2019-01-31 14:47:58,767 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:47:58,767 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 13 states. [2019-01-31 14:47:58,795 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-31 14:47:58,795 INFO L459 AbstractCegarLoop]: Interpolant automaton has 13 states [2019-01-31 14:47:58,796 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2019-01-31 14:47:58,796 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=122, Invalid=220, Unknown=0, NotChecked=0, Total=342 [2019-01-31 14:47:58,796 INFO L87 Difference]: Start difference. First operand 367 states and 1654 transitions. Second operand 13 states. [2019-01-31 14:48:08,504 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:48:08,505 INFO L93 Difference]: Finished difference Result 375 states and 1668 transitions. [2019-01-31 14:48:08,505 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-01-31 14:48:08,505 INFO L78 Accepts]: Start accepts. Automaton has 13 states. Word has length 7 [2019-01-31 14:48:08,505 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:48:08,505 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2019-01-31 14:48:08,505 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 46 transitions. [2019-01-31 14:48:08,505 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2019-01-31 14:48:08,506 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 46 transitions. [2019-01-31 14:48:08,506 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 46 transitions. [2019-01-31 14:48:08,589 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 46 edges. 46 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:48:08,598 INFO L225 Difference]: With dead ends: 375 [2019-01-31 14:48:08,599 INFO L226 Difference]: Without dead ends: 374 [2019-01-31 14:48:08,599 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 21 GetRequests, 0 SyntacticMatches, 1 SemanticMatches, 20 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 136 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=157, Invalid=305, Unknown=0, NotChecked=0, Total=462 [2019-01-31 14:48:08,599 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 374 states. [2019-01-31 14:48:13,954 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 374 to 147. [2019-01-31 14:48:13,955 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:48:13,955 INFO L82 GeneralOperation]: Start isEquivalent. First operand 374 states. Second operand 147 states. [2019-01-31 14:48:13,955 INFO L74 IsIncluded]: Start isIncluded. First operand 374 states. Second operand 147 states. [2019-01-31 14:48:13,955 INFO L87 Difference]: Start difference. First operand 374 states. Second operand 147 states. [2019-01-31 14:48:13,966 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:48:13,966 INFO L93 Difference]: Finished difference Result 374 states and 1638 transitions. [2019-01-31 14:48:13,966 INFO L276 IsEmpty]: Start isEmpty. Operand 374 states and 1638 transitions. [2019-01-31 14:48:13,967 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:48:13,967 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:48:13,967 INFO L74 IsIncluded]: Start isIncluded. First operand 147 states. Second operand 374 states. [2019-01-31 14:48:13,967 INFO L87 Difference]: Start difference. First operand 147 states. Second operand 374 states. [2019-01-31 14:48:13,978 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:48:13,978 INFO L93 Difference]: Finished difference Result 374 states and 1638 transitions. [2019-01-31 14:48:13,978 INFO L276 IsEmpty]: Start isEmpty. Operand 374 states and 1638 transitions. [2019-01-31 14:48:13,979 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:48:13,979 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:48:13,979 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:48:13,979 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:48:13,979 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 147 states. [2019-01-31 14:48:13,982 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 147 states to 147 states and 607 transitions. [2019-01-31 14:48:13,982 INFO L78 Accepts]: Start accepts. Automaton has 147 states and 607 transitions. Word has length 7 [2019-01-31 14:48:13,982 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:48:13,982 INFO L480 AbstractCegarLoop]: Abstraction has 147 states and 607 transitions. [2019-01-31 14:48:13,982 INFO L481 AbstractCegarLoop]: Interpolant automaton has 13 states. [2019-01-31 14:48:13,982 INFO L276 IsEmpty]: Start isEmpty. Operand 147 states and 607 transitions. [2019-01-31 14:48:13,983 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-31 14:48:13,983 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:48:13,983 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-31 14:48:13,983 INFO L423 AbstractCegarLoop]: === Iteration 48 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:48:13,983 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:48:13,983 INFO L82 PathProgramCache]: Analyzing trace with hash 1924438182, now seen corresponding path program 1 times [2019-01-31 14:48:13,983 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:48:13,984 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:48:13,984 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:48:13,984 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:48:13,984 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:48:13,986 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:48:14,238 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-31 14:48:14,239 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-31 14:48:14,240 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-31 14:48:14,240 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-31 14:48:14,241 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-31 14:48:14,241 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-31 14:48:14,242 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-31 14:48:14,242 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:48:14,242 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:48:14,243 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:48:14,243 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-31 14:48:14,243 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [20], [22], [24], [25] [2019-01-31 14:48:14,245 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:48:14,245 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:48:14,255 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:48:14,255 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-31 14:48:14,255 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:48:14,255 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:48:14,256 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:48:14,256 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-31 14:48:14,266 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:48:14,267 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:48:14,270 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:48:14,279 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:48:14,279 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:48:14,297 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-31 14:48:14,305 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:14,306 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-31 14:48:14,319 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:14,320 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:14,321 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-31 14:48:14,338 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:14,340 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:14,341 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:14,342 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-31 14:48:14,347 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:14,367 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:14,379 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:14,389 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:14,407 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:48:14,408 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-31 14:48:14,426 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:14,426 WARN L398 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-31 14:48:14,427 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:48:14,490 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:14,491 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:14,493 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:14,494 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:14,495 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:14,496 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:14,497 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:14,498 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:48:14,504 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:14,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-31 14:48:14,535 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:48:24,554 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:24,554 WARN L398 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-31 14:48:24,555 WARN L399 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-31 14:48:24,621 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,623 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,624 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,626 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,627 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,628 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,629 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,631 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,632 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:24,633 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-31 14:48:24,638 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:24,675 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:48:24,675 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-31 14:48:24,737 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:24,737 WARN L398 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-31 14:48:24,737 WARN L399 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-31 14:48:24,861 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-31 14:48:24,863 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-31 14:48:24,865 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-31 14:48:24,866 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-31 14:48:24,867 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-31 14:48:24,867 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-31 14:48:24,868 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-31 14:48:24,868 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:48:24,868 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:48:24,924 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-31 14:48:24,925 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-31 14:48:24,926 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-31 14:48:24,926 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-31 14:48:24,927 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-31 14:48:24,929 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-31 14:48:24,931 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-31 14:48:24,931 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:48:24,951 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:48:24,951 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 3, 3] total 8 [2019-01-31 14:48:24,951 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:48:24,951 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 7 [2019-01-31 14:48:24,951 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:48:24,951 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states. [2019-01-31 14:48:24,975 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-31 14:48:24,975 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2019-01-31 14:48:24,975 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2019-01-31 14:48:24,976 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=36, Invalid=54, Unknown=0, NotChecked=0, Total=90 [2019-01-31 14:48:24,976 INFO L87 Difference]: Start difference. First operand 147 states and 607 transitions. Second operand 7 states. [2019-01-31 14:48:30,825 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:48:30,825 INFO L93 Difference]: Finished difference Result 157 states and 628 transitions. [2019-01-31 14:48:30,825 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:48:30,825 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 7 [2019-01-31 14:48:30,825 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:48:30,825 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-01-31 14:48:30,825 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 34 transitions. [2019-01-31 14:48:30,826 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-01-31 14:48:30,826 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 34 transitions. [2019-01-31 14:48:30,826 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 34 transitions. [2019-01-31 14:48:30,874 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-31 14:48:30,878 INFO L225 Difference]: With dead ends: 157 [2019-01-31 14:48:30,878 INFO L226 Difference]: Without dead ends: 150 [2019-01-31 14:48:30,878 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-31 14:48:30,878 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 150 states. [2019-01-31 14:48:36,159 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 150 to 149. [2019-01-31 14:48:36,159 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:48:36,159 INFO L82 GeneralOperation]: Start isEquivalent. First operand 150 states. Second operand 149 states. [2019-01-31 14:48:36,160 INFO L74 IsIncluded]: Start isIncluded. First operand 150 states. Second operand 149 states. [2019-01-31 14:48:36,160 INFO L87 Difference]: Start difference. First operand 150 states. Second operand 149 states. [2019-01-31 14:48:36,163 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:48:36,163 INFO L93 Difference]: Finished difference Result 150 states and 615 transitions. [2019-01-31 14:48:36,163 INFO L276 IsEmpty]: Start isEmpty. Operand 150 states and 615 transitions. [2019-01-31 14:48:36,164 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:48:36,164 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:48:36,164 INFO L74 IsIncluded]: Start isIncluded. First operand 149 states. Second operand 150 states. [2019-01-31 14:48:36,164 INFO L87 Difference]: Start difference. First operand 149 states. Second operand 150 states. [2019-01-31 14:48:36,167 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:48:36,167 INFO L93 Difference]: Finished difference Result 150 states and 615 transitions. [2019-01-31 14:48:36,167 INFO L276 IsEmpty]: Start isEmpty. Operand 150 states and 615 transitions. [2019-01-31 14:48:36,167 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:48:36,168 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:48:36,168 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:48:36,168 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:48:36,168 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 149 states. [2019-01-31 14:48:36,170 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 149 states to 149 states and 611 transitions. [2019-01-31 14:48:36,171 INFO L78 Accepts]: Start accepts. Automaton has 149 states and 611 transitions. Word has length 7 [2019-01-31 14:48:36,171 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:48:36,171 INFO L480 AbstractCegarLoop]: Abstraction has 149 states and 611 transitions. [2019-01-31 14:48:36,171 INFO L481 AbstractCegarLoop]: Interpolant automaton has 7 states. [2019-01-31 14:48:36,171 INFO L276 IsEmpty]: Start isEmpty. Operand 149 states and 611 transitions. [2019-01-31 14:48:36,171 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-31 14:48:36,171 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:48:36,171 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-31 14:48:36,171 INFO L423 AbstractCegarLoop]: === Iteration 49 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:48:36,172 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:48:36,172 INFO L82 PathProgramCache]: Analyzing trace with hash 1928011116, now seen corresponding path program 1 times [2019-01-31 14:48:36,172 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:48:36,172 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:48:36,173 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:48:36,173 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:48:36,173 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:48:36,175 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:48:36,446 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-31 14:48:36,447 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-31 14:48:36,448 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-31 14:48:36,449 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-31 14:48:36,450 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-31 14:48:36,450 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-31 14:48:36,451 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-31 14:48:36,452 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:48:36,452 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:48:36,452 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:48:36,452 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-31 14:48:36,452 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [16], [20], [22], [23] [2019-01-31 14:48:36,453 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:48:36,454 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:48:36,466 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:48:36,466 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-31 14:48:36,467 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:48:36,467 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:48:36,467 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:48:36,467 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 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-31 14:48:36,477 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:48:36,477 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:48:36,481 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:48:36,483 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:48:36,484 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:48:36,505 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-31 14:48:36,513 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,513 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-31 14:48:36,529 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,530 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,530 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-31 14:48:36,545 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,546 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,547 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,548 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-31 14:48:36,553 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:36,569 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:36,580 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:36,590 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:36,607 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:48:36,608 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-31 14:48:36,617 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:36,617 WARN L398 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-31 14:48:36,617 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:48:36,669 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,670 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,671 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,673 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,674 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,675 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,676 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,677 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:48:36,682 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:36,712 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:48:36,712 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:48:36,719 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:36,720 WARN L398 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-31 14:48:36,720 WARN L399 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-31 14:48:36,775 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,776 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,777 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,778 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,779 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,780 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,782 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,783 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,783 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:48:36,784 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-31 14:48:36,789 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:36,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-31 14:48:36,823 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:48:36,830 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:36,831 WARN L398 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-31 14:48:36,831 WARN L399 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-31 14:48:36,888 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,889 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,890 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,891 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,892 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,893 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,895 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,896 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,897 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:36,898 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 57 [2019-01-31 14:48:36,903 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:36,939 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:48:36,939 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-31 14:48:36,971 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:36,971 WARN L398 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-31 14:48:36,971 WARN L399 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-31 14:48:37,056 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-31 14:48:37,057 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-31 14:48:37,059 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-31 14:48:37,060 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-31 14:48:37,061 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-31 14:48:37,062 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-31 14:48:37,063 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-31 14:48:37,063 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:48:37,064 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:48:37,144 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-31 14:48:37,145 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-31 14:48:37,145 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-31 14:48:37,147 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-31 14:48:37,148 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-31 14:48:37,150 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-31 14:48:37,152 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-31 14:48:37,152 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-31 14:48:37,171 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:48:37,172 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-31 14:48:37,172 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:48:37,172 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-31 14:48:37,172 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:48:37,172 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:48:37,197 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-31 14:48:37,197 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:48:37,197 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:48:37,197 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=69, Invalid=113, Unknown=0, NotChecked=0, Total=182 [2019-01-31 14:48:37,197 INFO L87 Difference]: Start difference. First operand 149 states and 611 transitions. Second operand 10 states. [2019-01-31 14:48:45,380 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:48:45,380 INFO L93 Difference]: Finished difference Result 206 states and 810 transitions. [2019-01-31 14:48:45,380 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-31 14:48:45,380 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-31 14:48:45,380 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:48:45,380 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:48:45,381 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 48 transitions. [2019-01-31 14:48:45,381 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:48:45,381 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 48 transitions. [2019-01-31 14:48:45,381 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 48 transitions. [2019-01-31 14:48:45,451 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-31 14:48:45,456 INFO L225 Difference]: With dead ends: 206 [2019-01-31 14:48:45,456 INFO L226 Difference]: Without dead ends: 199 [2019-01-31 14:48:45,456 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-31 14:48:45,456 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 199 states. [2019-01-31 14:48:52,695 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 199 to 158. [2019-01-31 14:48:52,695 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:48:52,695 INFO L82 GeneralOperation]: Start isEquivalent. First operand 199 states. Second operand 158 states. [2019-01-31 14:48:52,695 INFO L74 IsIncluded]: Start isIncluded. First operand 199 states. Second operand 158 states. [2019-01-31 14:48:52,695 INFO L87 Difference]: Start difference. First operand 199 states. Second operand 158 states. [2019-01-31 14:48:52,700 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:48:52,700 INFO L93 Difference]: Finished difference Result 199 states and 789 transitions. [2019-01-31 14:48:52,700 INFO L276 IsEmpty]: Start isEmpty. Operand 199 states and 789 transitions. [2019-01-31 14:48:52,701 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:48:52,701 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:48:52,701 INFO L74 IsIncluded]: Start isIncluded. First operand 158 states. Second operand 199 states. [2019-01-31 14:48:52,701 INFO L87 Difference]: Start difference. First operand 158 states. Second operand 199 states. [2019-01-31 14:48:52,705 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:48:52,705 INFO L93 Difference]: Finished difference Result 199 states and 789 transitions. [2019-01-31 14:48:52,705 INFO L276 IsEmpty]: Start isEmpty. Operand 199 states and 789 transitions. [2019-01-31 14:48:52,706 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:48:52,706 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:48:52,706 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:48:52,706 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:48:52,706 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 158 states. [2019-01-31 14:48:52,711 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 158 states to 158 states and 646 transitions. [2019-01-31 14:48:52,711 INFO L78 Accepts]: Start accepts. Automaton has 158 states and 646 transitions. Word has length 7 [2019-01-31 14:48:52,711 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:48:52,711 INFO L480 AbstractCegarLoop]: Abstraction has 158 states and 646 transitions. [2019-01-31 14:48:52,711 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:48:52,711 INFO L276 IsEmpty]: Start isEmpty. Operand 158 states and 646 transitions. [2019-01-31 14:48:52,712 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-31 14:48:52,712 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:48:52,712 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-31 14:48:52,712 INFO L423 AbstractCegarLoop]: === Iteration 50 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:48:52,712 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:48:52,713 INFO L82 PathProgramCache]: Analyzing trace with hash 2042527720, now seen corresponding path program 2 times [2019-01-31 14:48:52,713 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:48:52,713 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:48:52,713 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:48:52,713 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:48:52,714 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:48:52,716 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:48:53,034 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-31 14:48:53,035 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-31 14:48:53,036 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-31 14:48:53,037 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-31 14:48:53,038 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-31 14:48:53,039 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-31 14:48:53,039 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-31 14:48:53,040 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:48:53,040 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:48:53,040 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:48:53,040 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-31 14:48:53,040 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-31 14:48:53,041 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:48:53,041 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-31 14:48:53,051 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-31 14:48:53,051 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-31 14:48:53,058 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-31 14:48:53,058 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-31 14:48:53,070 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:48:53,071 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:48:53,089 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-31 14:48:53,098 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 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-31 14:48:53,110 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:53,111 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-31 14:48:53,130 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:53,131 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:53,132 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-31 14:48:53,137 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:53,149 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:53,159 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:53,168 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:53,181 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:48:53,182 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:22, output treesize:27 [2019-01-31 14:48:53,186 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:53,187 WARN L398 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-31 14:48:53,187 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:48:53,247 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:53,248 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:53,249 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:53,250 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:53,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, 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-31 14:48:53,255 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:53,274 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:48:53,274 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-31 14:48:53,298 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:53,298 WARN L398 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-31 14:48:53,299 WARN L399 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-31 14:48:53,348 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:53,350 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:53,351 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:53,352 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:53,354 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:53,355 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:53,356 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 50 [2019-01-31 14:48:53,362 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:53,388 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:48:53,389 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:34, output treesize:24 [2019-01-31 14:48:53,397 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:53,397 WARN L398 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-31 14:48:53,397 WARN L399 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-31 14:48:53,450 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:53,451 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:53,453 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:53,454 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:53,455 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:53,456 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:53,457 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:53,458 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:48:53,458 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-31 14:48:53,463 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:53,496 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:48:53,496 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:34, output treesize:24 [2019-01-31 14:48:53,511 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:53,512 WARN L398 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-31 14:48:53,512 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_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-31 14:48:53,583 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-31 14:48:53,585 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-31 14:48:53,587 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-31 14:48:53,588 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-31 14:48:53,589 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-31 14:48:53,590 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-31 14:48:53,591 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-31 14:48:53,592 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:48:53,592 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:48:53,659 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-31 14:48:53,660 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-31 14:48:53,661 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-31 14:48:53,662 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-31 14:48:53,680 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-31 14:48:53,695 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-31 14:48:53,710 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-31 14:48:53,710 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-31 14:48:53,734 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:48:53,734 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-31 14:48:53,734 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:48:53,734 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-31 14:48:53,735 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:48:53,735 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:48:53,755 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-31 14:48:53,755 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:48:53,755 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:48:53,755 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:48:53,756 INFO L87 Difference]: Start difference. First operand 158 states and 646 transitions. Second operand 10 states. [2019-01-31 14:49:02,132 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:02,133 INFO L93 Difference]: Finished difference Result 161 states and 653 transitions. [2019-01-31 14:49:02,133 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-31 14:49:02,133 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-31 14:49:02,133 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:49:02,133 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:49:02,133 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 33 transitions. [2019-01-31 14:49:02,133 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:49:02,133 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 33 transitions. [2019-01-31 14:49:02,134 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 33 transitions. [2019-01-31 14:49:02,187 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 33 edges. 33 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:49:02,190 INFO L225 Difference]: With dead ends: 161 [2019-01-31 14:49:02,190 INFO L226 Difference]: Without dead ends: 156 [2019-01-31 14:49:02,191 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 20 GetRequests, 5 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 43 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=89, Invalid=151, Unknown=0, NotChecked=0, Total=240 [2019-01-31 14:49:02,191 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 156 states. [2019-01-31 14:49:04,378 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 156 to 33. [2019-01-31 14:49:04,378 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:49:04,378 INFO L82 GeneralOperation]: Start isEquivalent. First operand 156 states. Second operand 33 states. [2019-01-31 14:49:04,379 INFO L74 IsIncluded]: Start isIncluded. First operand 156 states. Second operand 33 states. [2019-01-31 14:49:04,379 INFO L87 Difference]: Start difference. First operand 156 states. Second operand 33 states. [2019-01-31 14:49:04,382 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:04,382 INFO L93 Difference]: Finished difference Result 156 states and 632 transitions. [2019-01-31 14:49:04,382 INFO L276 IsEmpty]: Start isEmpty. Operand 156 states and 632 transitions. [2019-01-31 14:49:04,383 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:49:04,383 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:49:04,383 INFO L74 IsIncluded]: Start isIncluded. First operand 33 states. Second operand 156 states. [2019-01-31 14:49:04,383 INFO L87 Difference]: Start difference. First operand 33 states. Second operand 156 states. [2019-01-31 14:49:04,386 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:04,386 INFO L93 Difference]: Finished difference Result 156 states and 632 transitions. [2019-01-31 14:49:04,386 INFO L276 IsEmpty]: Start isEmpty. Operand 156 states and 632 transitions. [2019-01-31 14:49:04,386 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:49:04,386 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:49:04,386 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:49:04,386 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:49:04,386 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 33 states. [2019-01-31 14:49:04,387 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 33 states to 33 states and 119 transitions. [2019-01-31 14:49:04,387 INFO L78 Accepts]: Start accepts. Automaton has 33 states and 119 transitions. Word has length 7 [2019-01-31 14:49:04,387 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:49:04,387 INFO L480 AbstractCegarLoop]: Abstraction has 33 states and 119 transitions. [2019-01-31 14:49:04,387 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:49:04,387 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 119 transitions. [2019-01-31 14:49:04,387 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 9 [2019-01-31 14:49:04,388 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:49:04,388 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1] [2019-01-31 14:49:04,388 INFO L423 AbstractCegarLoop]: === Iteration 51 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:49:04,388 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:49:04,388 INFO L82 PathProgramCache]: Analyzing trace with hash -305786232, now seen corresponding path program 1 times [2019-01-31 14:49:04,388 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:49:04,389 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:49:04,389 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-31 14:49:04,389 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:49:04,389 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:49:04,392 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:49:04,630 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-31 14:49:04,631 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-31 14:49:04,633 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-31 14:49:04,634 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-31 14:49:04,634 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-31 14:49:04,635 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-31 14:49:04,635 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-31 14:49:04,636 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-31 14:49:04,636 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:49:04,637 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:49:04,637 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:49:04,637 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 9 with the following transitions: [2019-01-31 14:49:04,637 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [16], [20], [22], [24], [25] [2019-01-31 14:49:04,638 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:49:04,638 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:49:04,648 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:49:04,649 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-31 14:49:04,649 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:49:04,649 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:49:04,649 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:49:04,649 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-31 14:49:04,659 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:49:04,660 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:49:04,664 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:49:04,684 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:49:04,685 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:49:04,705 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-31 14:49:04,713 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:04,714 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-31 14:49:04,726 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:04,728 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:04,728 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-31 14:49:04,745 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:04,747 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:04,748 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:04,749 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-31 14:49:04,754 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:04,774 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:04,786 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:04,795 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:04,812 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:04,812 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-31 14:49:04,818 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:04,818 WARN L398 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-31 14:49:04,818 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:49:04,879 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:04,880 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:04,882 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:04,883 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:04,884 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:04,886 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:04,887 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:04,888 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:49:04,893 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:04,925 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:04,925 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:49:04,969 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:04,969 WARN L398 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-31 14:49:04,969 WARN L399 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-31 14:49:05,026 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:05,028 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:05,029 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:05,030 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:05,032 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:05,061 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:05,091 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:05,113 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:05,126 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:05,127 INFO L303 Elim1Store]: Index analysis took 102 ms [2019-01-31 14:49:05,127 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 57 [2019-01-31 14:49:05,132 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:05,166 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:05,166 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:49:05,176 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:05,176 WARN L398 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-31 14:49:05,176 WARN L399 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-31 14:49:05,240 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:05,242 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:05,243 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:05,244 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:05,246 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:05,247 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:05,248 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:05,249 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:05,250 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:05,251 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:05,252 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:49:05,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, 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-31 14:49:05,258 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:05,300 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:05,301 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-31 14:49:05,317 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:05,318 WARN L398 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-31 14:49:05,318 WARN L399 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-31 14:49:05,422 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-31 14:49:05,440 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-31 14:49:05,455 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-31 14:49:05,457 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-31 14:49:05,458 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-31 14:49:05,459 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-31 14:49:05,459 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-31 14:49:05,460 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-31 14:49:05,460 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:49:05,460 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:49:05,539 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-31 14:49:05,540 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-31 14:49:05,541 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-31 14:49:05,541 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-31 14:49:05,542 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-31 14:49:05,544 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-31 14:49:05,545 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-31 14:49:05,547 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-31 14:49:05,548 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-31 14:49:05,568 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:49:05,568 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-31 14:49:05,568 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:49:05,569 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 8 [2019-01-31 14:49:05,569 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:49:05,569 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:49:05,596 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-31 14:49:05,597 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:49:05,597 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:49:05,597 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=70, Invalid=112, Unknown=0, NotChecked=0, Total=182 [2019-01-31 14:49:05,598 INFO L87 Difference]: Start difference. First operand 33 states and 119 transitions. Second operand 10 states. [2019-01-31 14:49:09,990 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:09,991 INFO L93 Difference]: Finished difference Result 62 states and 209 transitions. [2019-01-31 14:49:09,991 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-31 14:49:09,991 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 8 [2019-01-31 14:49:09,991 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:49:09,992 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:49:09,992 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 45 transitions. [2019-01-31 14:49:09,992 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:49:09,992 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 45 transitions. [2019-01-31 14:49:09,992 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 45 transitions. [2019-01-31 14:49:10,054 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-31 14:49:10,055 INFO L225 Difference]: With dead ends: 62 [2019-01-31 14:49:10,056 INFO L226 Difference]: Without dead ends: 52 [2019-01-31 14:49:10,056 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 22 GetRequests, 7 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 60 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=88, Invalid=152, Unknown=0, NotChecked=0, Total=240 [2019-01-31 14:49:10,056 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 52 states. [2019-01-31 14:49:13,200 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 52 to 45. [2019-01-31 14:49:13,200 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:49:13,201 INFO L82 GeneralOperation]: Start isEquivalent. First operand 52 states. Second operand 45 states. [2019-01-31 14:49:13,201 INFO L74 IsIncluded]: Start isIncluded. First operand 52 states. Second operand 45 states. [2019-01-31 14:49:13,201 INFO L87 Difference]: Start difference. First operand 52 states. Second operand 45 states. [2019-01-31 14:49:13,202 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:13,203 INFO L93 Difference]: Finished difference Result 52 states and 195 transitions. [2019-01-31 14:49:13,203 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 195 transitions. [2019-01-31 14:49:13,203 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:49:13,203 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:49:13,203 INFO L74 IsIncluded]: Start isIncluded. First operand 45 states. Second operand 52 states. [2019-01-31 14:49:13,204 INFO L87 Difference]: Start difference. First operand 45 states. Second operand 52 states. [2019-01-31 14:49:13,205 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:13,205 INFO L93 Difference]: Finished difference Result 52 states and 195 transitions. [2019-01-31 14:49:13,205 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 195 transitions. [2019-01-31 14:49:13,205 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:49:13,205 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:49:13,205 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:49:13,206 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:49:13,206 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 45 states. [2019-01-31 14:49:13,206 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 45 states to 45 states and 167 transitions. [2019-01-31 14:49:13,207 INFO L78 Accepts]: Start accepts. Automaton has 45 states and 167 transitions. Word has length 8 [2019-01-31 14:49:13,207 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:49:13,207 INFO L480 AbstractCegarLoop]: Abstraction has 45 states and 167 transitions. [2019-01-31 14:49:13,207 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:49:13,207 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 167 transitions. [2019-01-31 14:49:13,207 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 9 [2019-01-31 14:49:13,207 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:49:13,207 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1] [2019-01-31 14:49:13,208 INFO L423 AbstractCegarLoop]: === Iteration 52 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:49:13,208 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:49:13,208 INFO L82 PathProgramCache]: Analyzing trace with hash -477561138, now seen corresponding path program 1 times [2019-01-31 14:49:13,208 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:49:13,208 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:49:13,209 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:49:13,209 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:49:13,209 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:49:13,211 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:49:13,490 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-31 14:49:13,491 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-31 14:49:13,492 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-31 14:49:13,493 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-31 14:49:13,494 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-31 14:49:13,494 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-31 14:49:13,495 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-31 14:49:13,496 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-31 14:49:13,496 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-31 14:49:13,496 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:49:13,496 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:49:13,497 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 9 with the following transitions: [2019-01-31 14:49:13,497 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [20], [22], [24], [25] [2019-01-31 14:49:13,498 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:49:13,498 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:49:13,509 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:49:13,509 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-31 14:49:13,510 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:49:13,510 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:49:13,510 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:49:13,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 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-31 14:49:13,520 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:49:13,521 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:49:13,524 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:49:13,529 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:49:13,529 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:49:13,552 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-31 14:49:13,561 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:13,562 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-31 14:49:13,574 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:13,576 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:13,576 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-31 14:49:13,594 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:13,595 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:13,597 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:13,598 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-31 14:49:13,603 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:13,622 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:13,634 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:13,644 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:13,660 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:13,660 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-31 14:49:13,665 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:13,665 WARN L398 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-31 14:49:13,666 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:49:13,730 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:13,731 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:13,732 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:13,734 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:13,735 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:13,736 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:13,738 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:13,739 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:49:13,744 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:13,777 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:13,777 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-31 14:49:15,136 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:15,137 WARN L398 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-31 14:49:15,137 WARN L399 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-31 14:49:15,209 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:15,211 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:15,212 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:15,213 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:15,214 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:15,216 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:15,217 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:15,218 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:15,219 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:15,220 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-31 14:49:15,226 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:15,262 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:15,262 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:49:15,285 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:15,285 WARN L398 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-31 14:49:15,285 WARN L399 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-31 14:49:15,345 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:15,346 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:15,348 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:15,349 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:15,350 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:15,351 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:15,352 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:15,353 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:15,354 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:15,356 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:15,356 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:49:15,357 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-31 14:49:15,362 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:15,404 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:15,404 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-31 14:49:15,544 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:15,544 WARN L398 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-31 14:49:15,544 WARN L399 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-31 14:49:15,659 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-31 14:49:15,661 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-31 14:49:15,663 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-31 14:49:15,666 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-31 14:49:15,667 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-31 14:49:15,667 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-31 14:49:15,668 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-31 14:49:15,668 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-31 14:49:15,669 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:49:15,669 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:49:15,747 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-31 14:49:15,748 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-31 14:49:15,748 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-31 14:49:15,749 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-31 14:49:15,750 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-31 14:49:15,751 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-31 14:49:15,754 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-31 14:49:15,756 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-31 14:49:15,756 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:49:15,778 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:49:15,778 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 4, 4] total 10 [2019-01-31 14:49:15,778 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:49:15,778 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 8 [2019-01-31 14:49:15,778 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:49:15,778 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:49:15,805 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-31 14:49:15,805 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:49:15,805 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:49:15,805 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=46, Invalid=86, Unknown=0, NotChecked=0, Total=132 [2019-01-31 14:49:15,805 INFO L87 Difference]: Start difference. First operand 45 states and 167 transitions. Second operand 8 states. [2019-01-31 14:49:20,234 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:20,234 INFO L93 Difference]: Finished difference Result 59 states and 204 transitions. [2019-01-31 14:49:20,234 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:49:20,235 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 8 [2019-01-31 14:49:20,235 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:49:20,235 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:49:20,235 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 37 transitions. [2019-01-31 14:49:20,236 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:49:20,236 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 37 transitions. [2019-01-31 14:49:20,236 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 37 transitions. [2019-01-31 14:49:20,371 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-31 14:49:20,373 INFO L225 Difference]: With dead ends: 59 [2019-01-31 14:49:20,373 INFO L226 Difference]: Without dead ends: 52 [2019-01-31 14:49:20,373 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 24 GetRequests, 7 SyntacticMatches, 4 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 41 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=73, Invalid=137, Unknown=0, NotChecked=0, Total=210 [2019-01-31 14:49:20,373 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 52 states. [2019-01-31 14:49:23,717 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 52 to 45. [2019-01-31 14:49:23,717 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:49:23,717 INFO L82 GeneralOperation]: Start isEquivalent. First operand 52 states. Second operand 45 states. [2019-01-31 14:49:23,717 INFO L74 IsIncluded]: Start isIncluded. First operand 52 states. Second operand 45 states. [2019-01-31 14:49:23,717 INFO L87 Difference]: Start difference. First operand 52 states. Second operand 45 states. [2019-01-31 14:49:23,719 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:23,719 INFO L93 Difference]: Finished difference Result 52 states and 195 transitions. [2019-01-31 14:49:23,720 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 195 transitions. [2019-01-31 14:49:23,720 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:49:23,720 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:49:23,720 INFO L74 IsIncluded]: Start isIncluded. First operand 45 states. Second operand 52 states. [2019-01-31 14:49:23,720 INFO L87 Difference]: Start difference. First operand 45 states. Second operand 52 states. [2019-01-31 14:49:23,721 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:23,721 INFO L93 Difference]: Finished difference Result 52 states and 195 transitions. [2019-01-31 14:49:23,722 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 195 transitions. [2019-01-31 14:49:23,722 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:49:23,722 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:49:23,722 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:49:23,722 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:49:23,722 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 45 states. [2019-01-31 14:49:23,723 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 45 states to 45 states and 167 transitions. [2019-01-31 14:49:23,723 INFO L78 Accepts]: Start accepts. Automaton has 45 states and 167 transitions. Word has length 8 [2019-01-31 14:49:23,723 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:49:23,723 INFO L480 AbstractCegarLoop]: Abstraction has 45 states and 167 transitions. [2019-01-31 14:49:23,723 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:49:23,723 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 167 transitions. [2019-01-31 14:49:23,723 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 10 [2019-01-31 14:49:23,724 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:49:23,724 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1, 1, 1] [2019-01-31 14:49:23,724 INFO L423 AbstractCegarLoop]: === Iteration 53 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:49:23,724 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:49:23,724 INFO L82 PathProgramCache]: Analyzing trace with hash -1160942496, now seen corresponding path program 2 times [2019-01-31 14:49:23,724 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:49:23,725 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:49:23,725 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:49:23,725 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:49:23,725 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:49:23,727 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:49:23,982 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-31 14:49:23,984 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-31 14:49:23,985 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-31 14:49:23,986 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-31 14:49:23,987 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-31 14:49:23,987 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-31 14:49:23,988 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-31 14:49:23,988 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-31 14:49:23,989 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-31 14:49:23,990 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-31 14:49:23,990 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:49:23,990 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:49:23,990 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-31 14:49:23,991 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-31 14:49:23,991 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:49:23,991 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 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-31 14:49:24,000 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-31 14:49:24,000 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-31 14:49:24,006 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-31 14:49:24,006 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-31 14:49:24,009 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:49:24,009 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:49:24,034 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-31 14:49:24,048 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,049 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-31 14:49:24,066 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,067 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,068 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-31 14:49:24,089 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,090 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,092 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,093 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-31 14:49:24,099 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:24,118 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:24,130 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:24,140 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:24,159 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:24,160 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-31 14:49:24,170 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:24,170 WARN L398 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-31 14:49:24,171 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:49:24,243 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,244 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,245 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,246 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,247 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,248 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,249 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,250 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-31 14:49:24,256 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:24,284 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:24,284 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-31 14:49:24,302 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:24,302 WARN L398 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-31 14:49:24,302 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (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-31 14:49:24,364 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,365 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,367 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,368 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,369 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,371 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,372 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,373 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,375 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,375 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-31 14:49:24,382 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:24,416 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:24,417 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:42, output treesize:32 [2019-01-31 14:49:24,422 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:24,423 WARN L398 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-31 14:49:24,423 WARN L399 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-31 14:49:24,485 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,487 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,488 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,490 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,491 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,492 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,494 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,495 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,496 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,497 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,499 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,500 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,501 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-31 14:49:24,506 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:24,550 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:24,551 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-31 14:49:24,557 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:24,558 WARN L398 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-31 14:49:24,558 WARN L399 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-31 14:49:24,620 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,622 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,623 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,624 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,626 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,627 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,628 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,629 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,630 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,631 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,632 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,634 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:24,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 33 treesize of output 89 [2019-01-31 14:49:24,640 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:24,686 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:24,686 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-31 14:49:24,724 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:24,724 WARN L398 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-31 14:49:24,724 WARN L399 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-31 14:49:24,833 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-31 14:49:24,834 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-31 14:49:24,836 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-31 14:49:24,838 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-31 14:49:24,841 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-31 14:49:24,842 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-31 14:49:24,843 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-31 14:49:24,844 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-31 14:49:24,845 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-31 14:49:24,846 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-31 14:49:24,846 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:49:24,972 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-31 14:49:24,973 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-31 14:49:24,973 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-31 14:49:24,974 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-31 14:49:24,975 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-31 14:49:24,976 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-31 14:49:24,978 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-31 14:49:24,979 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-31 14:49:24,980 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-31 14:49:24,981 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-31 14:49:24,999 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:49:24,999 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 5, 5] total 13 [2019-01-31 14:49:24,999 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:49:25,000 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 9 [2019-01-31 14:49:25,000 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:49:25,000 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:49:25,026 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-31 14:49:25,026 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:49:25,026 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:49:25,026 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=76, Invalid=134, Unknown=0, NotChecked=0, Total=210 [2019-01-31 14:49:25,026 INFO L87 Difference]: Start difference. First operand 45 states and 167 transitions. Second operand 10 states. [2019-01-31 14:49:30,986 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:30,986 INFO L93 Difference]: Finished difference Result 67 states and 237 transitions. [2019-01-31 14:49:30,986 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-31 14:49:30,986 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 9 [2019-01-31 14:49:30,987 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:49:30,987 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:49:30,987 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 45 transitions. [2019-01-31 14:49:30,987 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:49:30,987 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 45 transitions. [2019-01-31 14:49:30,987 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 45 transitions. [2019-01-31 14:49:31,072 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-31 14:49:31,073 INFO L225 Difference]: With dead ends: 67 [2019-01-31 14:49:31,073 INFO L226 Difference]: Without dead ends: 32 [2019-01-31 14:49:31,074 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 25 GetRequests, 8 SyntacticMatches, 2 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 73 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=96, Invalid=176, Unknown=0, NotChecked=0, Total=272 [2019-01-31 14:49:31,074 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 32 states. [2019-01-31 14:49:33,400 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 32 to 30. [2019-01-31 14:49:33,400 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:49:33,400 INFO L82 GeneralOperation]: Start isEquivalent. First operand 32 states. Second operand 30 states. [2019-01-31 14:49:33,400 INFO L74 IsIncluded]: Start isIncluded. First operand 32 states. Second operand 30 states. [2019-01-31 14:49:33,401 INFO L87 Difference]: Start difference. First operand 32 states. Second operand 30 states. [2019-01-31 14:49:33,401 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:33,401 INFO L93 Difference]: Finished difference Result 32 states and 106 transitions. [2019-01-31 14:49:33,401 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 106 transitions. [2019-01-31 14:49:33,402 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:49:33,402 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:49:33,402 INFO L74 IsIncluded]: Start isIncluded. First operand 30 states. Second operand 32 states. [2019-01-31 14:49:33,402 INFO L87 Difference]: Start difference. First operand 30 states. Second operand 32 states. [2019-01-31 14:49:33,403 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:33,403 INFO L93 Difference]: Finished difference Result 32 states and 106 transitions. [2019-01-31 14:49:33,403 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 106 transitions. [2019-01-31 14:49:33,403 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:49:33,403 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:49:33,403 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:49:33,403 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:49:33,403 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 30 states. [2019-01-31 14:49:33,404 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 30 states to 30 states and 100 transitions. [2019-01-31 14:49:33,404 INFO L78 Accepts]: Start accepts. Automaton has 30 states and 100 transitions. Word has length 9 [2019-01-31 14:49:33,404 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:49:33,405 INFO L480 AbstractCegarLoop]: Abstraction has 30 states and 100 transitions. [2019-01-31 14:49:33,405 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:49:33,405 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 100 transitions. [2019-01-31 14:49:33,405 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 10 [2019-01-31 14:49:33,405 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:49:33,405 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1, 1, 1] [2019-01-31 14:49:33,405 INFO L423 AbstractCegarLoop]: === Iteration 54 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:49:33,406 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:49:33,406 INFO L82 PathProgramCache]: Analyzing trace with hash -1292813016, now seen corresponding path program 1 times [2019-01-31 14:49:33,406 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:49:33,406 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:49:33,406 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-31 14:49:33,407 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:49:33,407 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:49:33,409 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:49:33,612 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-31 14:49:33,613 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-31 14:49:33,614 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-31 14:49:33,614 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-31 14:49:33,615 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-31 14:49:33,615 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-31 14:49:33,615 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-31 14:49:33,616 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-31 14:49:33,617 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-31 14:49:33,617 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-31 14:49:33,618 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:49:33,618 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:49:33,618 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 10 with the following transitions: [2019-01-31 14:49:33,618 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [16], [20], [22], [24], [25] [2019-01-31 14:49:33,619 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:49:33,620 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:49:33,646 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:49:33,646 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-31 14:49:33,646 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:49:33,646 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:49:33,646 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:49:33,646 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-31 14:49:33,654 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:49:33,654 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:49:33,659 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:49:33,663 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:49:33,664 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:49:33,689 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-31 14:49:33,699 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,700 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-31 14:49:33,714 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,715 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,716 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-31 14:49:33,733 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,735 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,736 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,737 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-31 14:49:33,743 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:33,762 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:33,775 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:33,785 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:33,804 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:33,804 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-31 14:49:33,811 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:33,812 WARN L398 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-31 14:49:33,812 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:49:33,881 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,883 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,884 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,885 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,886 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,888 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,889 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,890 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:49:33,896 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:33,931 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:33,931 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-31 14:49:33,945 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:33,946 WARN L398 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-31 14:49:33,946 WARN L399 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-31 14:49:34,009 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:34,010 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:34,012 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:34,013 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:34,015 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:34,016 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:34,017 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:34,018 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:34,020 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:34,020 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 57 [2019-01-31 14:49:34,026 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:34,062 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:34,062 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:49:34,091 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:34,091 WARN L398 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-31 14:49:34,092 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 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-31 14:49:34,153 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:34,154 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:34,155 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:34,156 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:34,158 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:34,159 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:34,160 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:34,161 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:34,162 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:34,163 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-31 14:49:34,169 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:34,207 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:34,207 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-31 14:49:34,217 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:34,217 WARN L398 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-31 14:49:34,217 WARN L399 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-31 14:49:34,283 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:34,284 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:34,285 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:34,286 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:34,288 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:34,289 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:34,290 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:34,291 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:34,292 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:34,293 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:34,294 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:34,295 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:49:34,296 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-31 14:49:34,301 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:34,346 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:34,346 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-31 14:49:34,359 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:34,359 WARN L398 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-31 14:49:34,359 WARN L399 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-31 14:49:34,498 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-31 14:49:34,499 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-31 14:49:34,501 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-31 14:49:34,503 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-31 14:49:34,505 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-31 14:49:34,506 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-31 14:49:34,507 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-31 14:49:34,508 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-31 14:49:34,509 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-31 14:49:34,510 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-31 14:49:34,510 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:49:34,608 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-31 14:49:34,608 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-31 14:49:34,609 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-31 14:49:34,609 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-31 14:49:34,610 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-31 14:49:34,611 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-31 14:49:34,619 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-31 14:49:34,620 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-31 14:49:34,621 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-31 14:49:34,622 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-31 14:49:34,640 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:49:34,640 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 5, 5] total 13 [2019-01-31 14:49:34,640 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:49:34,641 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 9 [2019-01-31 14:49:34,641 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:49:34,641 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:49:34,674 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-31 14:49:34,674 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:49:34,675 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:49:34,675 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=79, Invalid=131, Unknown=0, NotChecked=0, Total=210 [2019-01-31 14:49:34,675 INFO L87 Difference]: Start difference. First operand 30 states and 100 transitions. Second operand 10 states. [2019-01-31 14:49:38,418 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:38,418 INFO L93 Difference]: Finished difference Result 47 states and 147 transitions. [2019-01-31 14:49:38,418 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-31 14:49:38,418 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 9 [2019-01-31 14:49:38,419 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:49:38,419 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:49:38,419 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 42 transitions. [2019-01-31 14:49:38,419 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:49:38,420 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 42 transitions. [2019-01-31 14:49:38,420 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 42 transitions. [2019-01-31 14:49:38,482 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-31 14:49:38,483 INFO L225 Difference]: With dead ends: 47 [2019-01-31 14:49:38,483 INFO L226 Difference]: Without dead ends: 40 [2019-01-31 14:49:38,483 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 25 GetRequests, 8 SyntacticMatches, 2 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 73 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=99, Invalid=173, Unknown=0, NotChecked=0, Total=272 [2019-01-31 14:49:38,483 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 40 states. [2019-01-31 14:49:41,365 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 40 to 36. [2019-01-31 14:49:41,365 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:49:41,365 INFO L82 GeneralOperation]: Start isEquivalent. First operand 40 states. Second operand 36 states. [2019-01-31 14:49:41,365 INFO L74 IsIncluded]: Start isIncluded. First operand 40 states. Second operand 36 states. [2019-01-31 14:49:41,365 INFO L87 Difference]: Start difference. First operand 40 states. Second operand 36 states. [2019-01-31 14:49:41,366 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:41,366 INFO L93 Difference]: Finished difference Result 40 states and 138 transitions. [2019-01-31 14:49:41,366 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 138 transitions. [2019-01-31 14:49:41,366 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:49:41,367 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:49:41,367 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 40 states. [2019-01-31 14:49:41,367 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 40 states. [2019-01-31 14:49:41,368 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:41,368 INFO L93 Difference]: Finished difference Result 40 states and 138 transitions. [2019-01-31 14:49:41,368 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 138 transitions. [2019-01-31 14:49:41,368 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:49:41,368 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:49:41,368 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:49:41,368 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:49:41,369 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 36 states. [2019-01-31 14:49:41,369 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 36 states to 36 states and 122 transitions. [2019-01-31 14:49:41,369 INFO L78 Accepts]: Start accepts. Automaton has 36 states and 122 transitions. Word has length 9 [2019-01-31 14:49:41,369 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:49:41,369 INFO L480 AbstractCegarLoop]: Abstraction has 36 states and 122 transitions. [2019-01-31 14:49:41,369 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:49:41,370 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 122 transitions. [2019-01-31 14:49:41,370 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 10 [2019-01-31 14:49:41,370 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:49:41,370 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1, 1, 1] [2019-01-31 14:49:41,370 INFO L423 AbstractCegarLoop]: === Iteration 55 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:49:41,370 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:49:41,370 INFO L82 PathProgramCache]: Analyzing trace with hash -1875225892, now seen corresponding path program 2 times [2019-01-31 14:49:41,370 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:49:41,371 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:49:41,371 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:49:41,371 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:49:41,371 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:49:41,373 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:49:41,882 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-31 14:49:41,884 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-31 14:49:41,885 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-31 14:49:41,886 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-31 14:49:41,887 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-31 14:49:41,887 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-31 14:49:41,888 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-31 14:49:41,888 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-31 14:49:41,889 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-31 14:49:41,890 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-31 14:49:41,890 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:49:41,890 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:49:41,890 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-31 14:49:41,890 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-31 14:49:41,891 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:49:41,891 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-31 14:49:41,903 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-31 14:49:41,903 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-31 14:49:41,909 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-31 14:49:41,910 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-31 14:49:41,913 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:49:41,914 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:49:41,937 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-31 14:49:41,947 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:41,948 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-31 14:49:41,962 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:41,963 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:41,964 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-31 14:49:41,988 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:41,989 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:41,990 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:41,990 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-31 14:49:41,996 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:42,015 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:42,027 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:42,037 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:42,061 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:42,061 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-31 14:49:42,067 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:42,067 WARN L398 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-31 14:49:42,067 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:49:42,130 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,131 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,133 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,134 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,135 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,136 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,138 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,138 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:49:42,144 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:42,176 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:42,176 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-31 14:49:42,190 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:42,191 WARN L398 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-31 14:49:42,191 WARN L399 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-31 14:49:42,256 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,258 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,259 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,260 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,262 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,263 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,264 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,266 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,267 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,268 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-31 14:49:42,273 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:42,313 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:42,313 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:49:42,319 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:42,319 WARN L398 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-31 14:49:42,319 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 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-31 14:49:42,403 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,404 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,405 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,406 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,407 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,408 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,409 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,410 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,412 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,413 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,414 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,414 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:49:42,415 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-31 14:49:42,421 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:42,467 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:42,467 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-31 14:49:42,476 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:42,476 WARN L398 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-31 14:49:42,476 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (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-31 14:49:42,535 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,537 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,538 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,539 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,541 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,542 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,543 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,544 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,545 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,546 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,547 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,548 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,549 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-31 14:49:42,556 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:42,599 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:42,599 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-01-31 14:49:53,284 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:53,284 WARN L398 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-31 14:49:53,284 WARN L399 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-31 14:49:53,594 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-31 14:49:53,597 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-31 14:49:53,599 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-31 14:49:53,602 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-31 14:49:53,605 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-31 14:49:53,606 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-31 14:49:53,607 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-31 14:49:53,608 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-31 14:49:53,609 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-31 14:49:53,610 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-31 14:49:53,610 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:49:53,713 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-31 14:49:53,714 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-31 14:49:53,714 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-31 14:49:53,715 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-31 14:49:53,716 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-31 14:49:53,717 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-31 14:49:53,719 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-31 14:49:53,721 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-31 14:49:53,724 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-31 14:49:53,724 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-31 14:49:53,743 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:49:53,743 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 5, 5] total 14 [2019-01-31 14:49:53,744 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:49:53,744 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 9 [2019-01-31 14:49:53,744 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:49:53,744 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states. [2019-01-31 14:49:53,773 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-31 14:49:53,773 INFO L459 AbstractCegarLoop]: Interpolant automaton has 11 states [2019-01-31 14:49:53,773 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2019-01-31 14:49:53,773 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=92, Invalid=148, Unknown=0, NotChecked=0, Total=240 [2019-01-31 14:49:53,774 INFO L87 Difference]: Start difference. First operand 36 states and 122 transitions. Second operand 11 states. [2019-01-31 14:49:58,378 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:58,378 INFO L93 Difference]: Finished difference Result 52 states and 168 transitions. [2019-01-31 14:49:58,378 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-31 14:49:58,378 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 9 [2019-01-31 14:49:58,378 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:49:58,378 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2019-01-31 14:49:58,379 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 43 transitions. [2019-01-31 14:49:58,379 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2019-01-31 14:49:58,379 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 43 transitions. [2019-01-31 14:49:58,379 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 43 transitions. [2019-01-31 14:49:58,439 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-31 14:49:58,440 INFO L225 Difference]: With dead ends: 52 [2019-01-31 14:49:58,441 INFO L226 Difference]: Without dead ends: 45 [2019-01-31 14:49:58,441 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-31 14:49:58,441 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 45 states. [2019-01-31 14:50:01,637 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 45 to 40. [2019-01-31 14:50:01,638 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:50:01,638 INFO L82 GeneralOperation]: Start isEquivalent. First operand 45 states. Second operand 40 states. [2019-01-31 14:50:01,638 INFO L74 IsIncluded]: Start isIncluded. First operand 45 states. Second operand 40 states. [2019-01-31 14:50:01,638 INFO L87 Difference]: Start difference. First operand 45 states. Second operand 40 states. [2019-01-31 14:50:01,639 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:50:01,639 INFO L93 Difference]: Finished difference Result 45 states and 158 transitions. [2019-01-31 14:50:01,640 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 158 transitions. [2019-01-31 14:50:01,640 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:50:01,640 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:50:01,640 INFO L74 IsIncluded]: Start isIncluded. First operand 40 states. Second operand 45 states. [2019-01-31 14:50:01,640 INFO L87 Difference]: Start difference. First operand 40 states. Second operand 45 states. [2019-01-31 14:50:01,645 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:50:01,646 INFO L93 Difference]: Finished difference Result 45 states and 158 transitions. [2019-01-31 14:50:01,646 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 158 transitions. [2019-01-31 14:50:01,646 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:50:01,646 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:50:01,646 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:50:01,646 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:50:01,646 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 40 states. [2019-01-31 14:50:01,647 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 40 states to 40 states and 138 transitions. [2019-01-31 14:50:01,647 INFO L78 Accepts]: Start accepts. Automaton has 40 states and 138 transitions. Word has length 9 [2019-01-31 14:50:01,647 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:50:01,647 INFO L480 AbstractCegarLoop]: Abstraction has 40 states and 138 transitions. [2019-01-31 14:50:01,647 INFO L481 AbstractCegarLoop]: Interpolant automaton has 11 states. [2019-01-31 14:50:01,647 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 138 transitions. [2019-01-31 14:50:01,648 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 10 [2019-01-31 14:50:01,648 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:50:01,648 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1] [2019-01-31 14:50:01,648 INFO L423 AbstractCegarLoop]: === Iteration 56 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:50:01,648 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:50:01,648 INFO L82 PathProgramCache]: Analyzing trace with hash -1867837724, now seen corresponding path program 1 times [2019-01-31 14:50:01,648 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:50:01,649 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:50:01,649 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-31 14:50:01,649 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:50:01,649 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:50:01,652 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:50:02,012 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-31 14:50:02,013 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-31 14:50:02,014 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-31 14:50:02,014 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-31 14:50:02,015 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-31 14:50:02,016 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-31 14:50:02,016 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-31 14:50:02,017 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-31 14:50:02,017 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-31 14:50:02,018 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-31 14:50:02,018 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:50:02,018 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:50:02,018 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 10 with the following transitions: [2019-01-31 14:50:02,019 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [16], [20], [22], [24], [25] [2019-01-31 14:50:02,020 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:50:02,020 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:50:02,031 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:50:02,031 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-31 14:50:02,032 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:50:02,032 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:50:02,032 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:50:02,032 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-31 14:50:02,042 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:50:02,042 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:50:02,046 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:50:02,049 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:50:02,049 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:50:02,066 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-31 14:50:02,075 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,076 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-31 14:50:02,089 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,091 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,091 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-31 14:50:02,260 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,281 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,302 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,302 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-31 14:50:02,307 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:02,328 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:02,340 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:02,350 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:02,367 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:02,368 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-31 14:50:02,372 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:02,373 WARN L398 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-31 14:50:02,373 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:50:02,432 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,433 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,435 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,442 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,444 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,444 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,445 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,446 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:50:02,451 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:02,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-31 14:50:02,483 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-31 14:50:02,647 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:02,647 WARN L398 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-31 14:50:02,647 WARN L399 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-31 14:50:02,709 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,711 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,712 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,713 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,715 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,716 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,717 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,718 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,720 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,721 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-31 14:50:02,727 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:02,762 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:02,763 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:50:02,771 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:02,771 WARN L398 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-31 14:50:02,771 WARN L399 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-31 14:50:02,832 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,833 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,835 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,836 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,837 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,838 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,839 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,840 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,842 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,843 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,844 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,844 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:50:02,845 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-31 14:50:02,851 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:02,892 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:02,893 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-31 14:50:02,901 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:02,901 WARN L398 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-31 14:50:02,901 WARN L399 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-31 14:50:02,968 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,970 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,971 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,972 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,974 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,975 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,976 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,978 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,979 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,980 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:02,981 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:50:02,982 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-31 14:50:02,987 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:03,030 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:03,031 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-01-31 14:50:04,647 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:04,647 WARN L398 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-31 14:50:04,647 WARN L399 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-31 14:50:04,835 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-31 14:50:04,837 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-31 14:50:04,839 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-31 14:50:04,841 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-31 14:50:04,844 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-31 14:50:04,845 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-31 14:50:04,846 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-31 14:50:04,847 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-31 14:50:04,848 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-31 14:50:04,849 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-31 14:50:04,849 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:50:04,957 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-31 14:50:04,957 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-31 14:50:04,958 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-31 14:50:04,958 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-31 14:50:04,959 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-31 14:50:04,961 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-31 14:50:04,962 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-31 14:50:04,965 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-31 14:50:04,967 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-31 14:50:04,968 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-31 14:50:04,988 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:50:04,988 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 14 [2019-01-31 14:50:04,988 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:50:04,988 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 9 [2019-01-31 14:50:04,988 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:50:04,989 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-31 14:50:05,019 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-31 14:50:05,019 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-31 14:50:05,019 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-31 14:50:05,019 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=95, Invalid=145, Unknown=0, NotChecked=0, Total=240 [2019-01-31 14:50:05,019 INFO L87 Difference]: Start difference. First operand 40 states and 138 transitions. Second operand 12 states. [2019-01-31 14:50:10,515 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:50:10,515 INFO L93 Difference]: Finished difference Result 66 states and 218 transitions. [2019-01-31 14:50:10,516 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-01-31 14:50:10,516 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 9 [2019-01-31 14:50:10,516 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:50:10,516 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:50:10,516 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 51 transitions. [2019-01-31 14:50:10,517 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:50:10,517 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 51 transitions. [2019-01-31 14:50:10,517 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 51 transitions. [2019-01-31 14:50:10,595 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 51 edges. 51 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:50:10,596 INFO L225 Difference]: With dead ends: 66 [2019-01-31 14:50:10,597 INFO L226 Difference]: Without dead ends: 56 [2019-01-31 14:50:10,597 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 27 GetRequests, 7 SyntacticMatches, 3 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 86 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=127, Invalid=215, Unknown=0, NotChecked=0, Total=342 [2019-01-31 14:50:10,597 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 56 states. [2019-01-31 14:50:14,156 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 56 to 40. [2019-01-31 14:50:14,156 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:50:14,156 INFO L82 GeneralOperation]: Start isEquivalent. First operand 56 states. Second operand 40 states. [2019-01-31 14:50:14,156 INFO L74 IsIncluded]: Start isIncluded. First operand 56 states. Second operand 40 states. [2019-01-31 14:50:14,156 INFO L87 Difference]: Start difference. First operand 56 states. Second operand 40 states. [2019-01-31 14:50:14,158 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:50:14,158 INFO L93 Difference]: Finished difference Result 56 states and 202 transitions. [2019-01-31 14:50:14,158 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 202 transitions. [2019-01-31 14:50:14,158 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:50:14,158 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:50:14,158 INFO L74 IsIncluded]: Start isIncluded. First operand 40 states. Second operand 56 states. [2019-01-31 14:50:14,158 INFO L87 Difference]: Start difference. First operand 40 states. Second operand 56 states. [2019-01-31 14:50:14,159 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:50:14,159 INFO L93 Difference]: Finished difference Result 56 states and 202 transitions. [2019-01-31 14:50:14,159 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 202 transitions. [2019-01-31 14:50:14,160 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:50:14,160 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:50:14,160 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:50:14,160 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:50:14,160 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 40 states. [2019-01-31 14:50:14,161 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 40 states to 40 states and 140 transitions. [2019-01-31 14:50:14,161 INFO L78 Accepts]: Start accepts. Automaton has 40 states and 140 transitions. Word has length 9 [2019-01-31 14:50:14,161 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:50:14,161 INFO L480 AbstractCegarLoop]: Abstraction has 40 states and 140 transitions. [2019-01-31 14:50:14,161 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-31 14:50:14,161 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 140 transitions. [2019-01-31 14:50:14,161 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 11 [2019-01-31 14:50:14,161 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:50:14,161 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1, 1, 1, 1] [2019-01-31 14:50:14,162 INFO L423 AbstractCegarLoop]: === Iteration 57 === [ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:50:14,162 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:50:14,162 INFO L82 PathProgramCache]: Analyzing trace with hash 638911500, now seen corresponding path program 2 times [2019-01-31 14:50:14,162 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:50:14,162 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:50:14,162 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:50:14,162 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:50:14,162 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:50:14,166 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:50:14,722 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-31 14:50:14,723 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-31 14:50:14,723 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-31 14:50:14,724 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-31 14:50:14,725 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-31 14:50:14,726 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-31 14:50:14,726 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-31 14:50:14,727 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-31 14:50:14,727 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-31 14:50:14,728 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-31 14:50:14,729 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-31 14:50:14,729 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:50:14,729 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:50:14,729 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-31 14:50:14,730 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-31 14:50:14,730 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:50:14,730 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-31 14:50:14,740 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-31 14:50:14,740 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-31 14:50:14,746 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 4 check-sat command(s) [2019-01-31 14:50:14,746 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-31 14:50:14,750 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:50:14,750 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:50:14,770 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-31 14:50:14,779 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:14,779 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-31 14:50:14,793 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:14,794 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:14,795 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-31 14:50:14,812 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:14,814 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:14,815 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:14,816 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-31 14:50:14,822 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:14,842 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:14,854 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:14,865 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:14,881 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:14,881 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-31 14:50:14,886 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:14,886 WARN L398 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-31 14:50:14,886 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:50:14,952 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:14,953 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:14,955 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:14,956 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:14,957 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:14,959 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:14,960 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:14,961 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:50:14,966 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:14,997 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:14,998 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-31 14:50:15,113 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:15,114 WARN L398 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-31 14:50:15,114 WARN L399 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-31 14:50:15,181 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,182 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,183 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,184 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,185 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,187 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,188 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,189 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,190 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:50:15,191 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-31 14:50:15,197 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:15,235 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:15,235 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:42, output treesize:32 [2019-01-31 14:50:15,249 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:15,249 WARN L398 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-31 14:50:15,249 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (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-31 14:50:15,311 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,313 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,314 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,315 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,316 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,318 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,319 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,320 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,321 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,322 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-31 14:50:15,328 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:15,364 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:15,364 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:44, output treesize:34 [2019-01-31 14:50:15,370 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:15,370 WARN L398 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-31 14:50:15,370 WARN L399 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-31 14:50:15,436 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,438 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,439 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,441 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,442 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,443 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,445 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,446 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,447 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,448 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,450 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,451 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,452 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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-31 14:50:15,459 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:15,501 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:15,501 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:44, output treesize:34 [2019-01-31 14:50:15,510 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:15,510 WARN L398 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-31 14:50:15,510 WARN L399 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-31 14:50:15,584 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,585 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,586 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,588 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,589 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,590 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,591 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,592 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,593 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,595 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,596 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,597 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,598 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-31 14:50:15,603 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:15,647 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:15,648 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-01-31 14:50:15,659 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:15,659 WARN L398 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-31 14:50:15,659 WARN L399 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-31 14:50:15,778 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-31 14:50:15,780 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-31 14:50:15,782 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-31 14:50:15,784 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-31 14:50:15,786 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-31 14:50:15,789 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-31 14:50:15,790 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-31 14:50:15,791 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-31 14:50:15,792 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-31 14:50:15,793 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-31 14:50:15,794 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-31 14:50:15,795 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:50:15,944 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-31 14:50:15,944 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-31 14:50:15,945 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-31 14:50:15,945 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-31 14:50:15,947 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-31 14:50:15,948 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-31 14:50:15,950 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-31 14:50:15,952 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-31 14:50:15,954 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-31 14:50:15,956 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-31 14:50:15,957 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-31 14:50:15,977 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:50:15,977 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 6, 6] total 16 [2019-01-31 14:50:15,977 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:50:15,977 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 10 [2019-01-31 14:50:15,977 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:50:15,978 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-31 14:50:16,011 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-31 14:50:16,011 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-31 14:50:16,012 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-31 14:50:16,012 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=106, Invalid=200, Unknown=0, NotChecked=0, Total=306 [2019-01-31 14:50:16,012 INFO L87 Difference]: Start difference. First operand 40 states and 140 transitions. Second operand 12 states. [2019-01-31 14:50:21,183 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:50:21,184 INFO L93 Difference]: Finished difference Result 48 states and 164 transitions. [2019-01-31 14:50:21,184 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-01-31 14:50:21,184 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 10 [2019-01-31 14:50:21,184 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:50:21,184 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:50:21,184 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 40 transitions. [2019-01-31 14:50:21,184 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:50:21,185 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 40 transitions. [2019-01-31 14:50:21,185 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 40 transitions. [2019-01-31 14:50:21,261 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-31 14:50:21,262 INFO L225 Difference]: With dead ends: 48 [2019-01-31 14:50:21,262 INFO L226 Difference]: Without dead ends: 0 [2019-01-31 14:50:21,262 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 30 GetRequests, 8 SyntacticMatches, 3 SemanticMatches, 19 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 125 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=139, Invalid=281, Unknown=0, NotChecked=0, Total=420 [2019-01-31 14:50:21,263 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 0 states. [2019-01-31 14:50:21,263 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 0 to 0. [2019-01-31 14:50:21,263 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:50:21,263 INFO L82 GeneralOperation]: Start isEquivalent. First operand 0 states. Second operand 0 states. [2019-01-31 14:50:21,264 INFO L74 IsIncluded]: Start isIncluded. First operand 0 states. Second operand 0 states. [2019-01-31 14:50:21,264 INFO L87 Difference]: Start difference. First operand 0 states. Second operand 0 states. [2019-01-31 14:50:21,264 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:50:21,264 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2019-01-31 14:50:21,264 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2019-01-31 14:50:21,265 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:50:21,265 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:50:21,265 INFO L74 IsIncluded]: Start isIncluded. First operand 0 states. Second operand 0 states. [2019-01-31 14:50:21,265 INFO L87 Difference]: Start difference. First operand 0 states. Second operand 0 states. [2019-01-31 14:50:21,265 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:50:21,265 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2019-01-31 14:50:21,265 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2019-01-31 14:50:21,266 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:50:21,266 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:50:21,266 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:50:21,266 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:50:21,266 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 0 states. [2019-01-31 14:50:21,266 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 0 states to 0 states and 0 transitions. [2019-01-31 14:50:21,266 INFO L78 Accepts]: Start accepts. Automaton has 0 states and 0 transitions. Word has length 10 [2019-01-31 14:50:21,266 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:50:21,266 INFO L480 AbstractCegarLoop]: Abstraction has 0 states and 0 transitions. [2019-01-31 14:50:21,266 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-31 14:50:21,266 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2019-01-31 14:50:21,266 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:50:21,270 INFO L343 DoubleDeckerVisitor]: Before removal of dead ends 0 states and 0 transitions. [2019-01-31 14:50:21,308 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:21,322 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:21,342 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:21,623 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:21,625 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:21,636 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:21,696 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:21,876 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:21,905 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:21,907 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:21,916 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:21,917 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:22,010 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:22,017 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:22,021 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:22,035 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:22,038 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:22,066 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:22,072 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:22,073 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:22,217 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:22,218 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:22,241 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:22,290 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:22,339 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:23,286 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:23,296 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:23,424 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:23,550 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:23,552 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:23,574 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:23,595 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:23,596 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:23,661 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:23,673 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:23,781 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:23,796 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:24,199 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:24,242 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:24,299 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:24,349 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:24,379 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:24,602 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:25,072 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:25,140 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:25,427 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:25,427 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:25,428 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:25,506 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:25,644 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:25,960 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:25,962 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:26,074 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:26,130 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:26,158 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:26,193 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:26,238 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:26,239 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:26,240 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:26,247 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:26,251 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:26,282 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:26,663 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:26,689 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:26,704 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:26,725 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:26,726 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:27,455 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:27,600 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:27,671 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:28,108 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:28,336 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:28,337 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:28,523 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:29,018 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:29,020 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:29,020 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:29,613 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:29,662 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:29,666 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:30,171 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:30,174 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:30,174 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:30,183 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:31,472 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:31,475 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:31,572 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:32,262 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-31 14:50:32,311 WARN L181 SmtUtils]: Spent 11.03 s on a formula simplification. DAG size of input: 1855 DAG size of output: 1101 [2019-01-31 14:50:46,984 WARN L181 SmtUtils]: Spent 14.48 s on a formula simplification. DAG size of input: 1000 DAG size of output: 85 [2019-01-31 14:50:46,999 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startErr3ASSERT_VIOLATIONASSERT(line 46) no Hoare annotation was computed. [2019-01-31 14:50:46,999 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startEXIT(lines 7 9) no Hoare annotation was computed. [2019-01-31 14:50:46,999 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startErr2ASSERT_VIOLATIONASSERT(line 45) no Hoare annotation was computed. [2019-01-31 14:50:47,000 INFO L448 ceAbstractionStarter]: For program point L46(line 46) no Hoare annotation was computed. [2019-01-31 14:50:47,000 INFO L448 ceAbstractionStarter]: For program point L44(line 44) no Hoare annotation was computed. [2019-01-31 14:50:47,000 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-31 14:50:47,000 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startENTRY(lines 7 9) no Hoare annotation was computed. [2019-01-31 14:50:47,000 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startErr1ASSERT_VIOLATIONASSERT(line 44) no Hoare annotation was computed. [2019-01-31 14:50:47,000 INFO L448 ceAbstractionStarter]: For program point L14(lines 7 48) no Hoare annotation was computed. [2019-01-31 14:50:47,000 INFO L448 ceAbstractionStarter]: For program point L45(line 45) no Hoare annotation was computed. [2019-01-31 14:50:47,000 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startErr0ASSERT_VIOLATIONASSERT(line 43) no Hoare annotation was computed. [2019-01-31 14:50:47,002 WARN L170 areAnnotationChecker]: ULTIMATE.startENTRY has no Hoare annotation [2019-01-31 14:50:47,002 WARN L170 areAnnotationChecker]: ULTIMATE.startErr0ASSERT_VIOLATIONASSERT has no Hoare annotation [2019-01-31 14:50:47,002 WARN L170 areAnnotationChecker]: L44 has no Hoare annotation [2019-01-31 14:50:47,031 WARN L170 areAnnotationChecker]: L44 has no Hoare annotation [2019-01-31 14:50:47,031 WARN L170 areAnnotationChecker]: L44 has no Hoare annotation [2019-01-31 14:50:47,031 WARN L170 areAnnotationChecker]: L45 has no Hoare annotation [2019-01-31 14:50:47,031 WARN L170 areAnnotationChecker]: L45 has no Hoare annotation [2019-01-31 14:50:47,031 WARN L170 areAnnotationChecker]: L46 has no Hoare annotation [2019-01-31 14:50:47,031 WARN L170 areAnnotationChecker]: L46 has no Hoare annotation [2019-01-31 14:50:47,031 WARN L170 areAnnotationChecker]: L14 has no Hoare annotation [2019-01-31 14:50:47,031 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-31 14:50:47,056 INFO L202 PluginConnector]: Adding new model speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction CFG 31.01 02:50:47 BoogieIcfgContainer [2019-01-31 14:50:47,056 INFO L132 PluginConnector]: ------------------------ END TraceAbstraction---------------------------- [2019-01-31 14:50:47,057 INFO L168 Benchmark]: Toolchain (without parser) took 612004.46 ms. Allocated memory was 134.2 MB in the beginning and 676.9 MB in the end (delta: 542.6 MB). Free memory was 107.9 MB in the beginning and 479.8 MB in the end (delta: -371.9 MB). Peak memory consumption was 170.8 MB. Max. memory is 7.1 GB. [2019-01-31 14:50:47,058 INFO L168 Benchmark]: Boogie PL CUP Parser took 0.17 ms. Allocated memory is still 134.2 MB. Free memory is still 109.4 MB. There was no memory consumed. Max. memory is 7.1 GB. [2019-01-31 14:50:47,058 INFO L168 Benchmark]: Boogie Procedure Inliner took 58.56 ms. Allocated memory is still 134.2 MB. Free memory was 107.9 MB in the beginning and 105.6 MB in the end (delta: 2.3 MB). Peak memory consumption was 2.3 MB. Max. memory is 7.1 GB. [2019-01-31 14:50:47,058 INFO L168 Benchmark]: Boogie Preprocessor took 23.87 ms. Allocated memory is still 134.2 MB. Free memory was 105.6 MB in the beginning and 104.3 MB in the end (delta: 1.3 MB). Peak memory consumption was 1.3 MB. Max. memory is 7.1 GB. [2019-01-31 14:50:47,058 INFO L168 Benchmark]: RCFGBuilder took 663.36 ms. Allocated memory is still 134.2 MB. Free memory was 104.3 MB in the beginning and 89.1 MB in the end (delta: 15.2 MB). Peak memory consumption was 15.2 MB. Max. memory is 7.1 GB. [2019-01-31 14:50:47,058 INFO L168 Benchmark]: TraceAbstraction took 611253.76 ms. Allocated memory was 134.2 MB in the beginning and 676.9 MB in the end (delta: 542.6 MB). Free memory was 88.9 MB in the beginning and 479.8 MB in the end (delta: -390.8 MB). Peak memory consumption was 151.8 MB. Max. memory is 7.1 GB. [2019-01-31 14:50:47,061 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 134.2 MB. Free memory is still 109.4 MB. There was no memory consumed. Max. memory is 7.1 GB. * Boogie Procedure Inliner took 58.56 ms. Allocated memory is still 134.2 MB. Free memory was 107.9 MB in the beginning and 105.6 MB in the end (delta: 2.3 MB). Peak memory consumption was 2.3 MB. Max. memory is 7.1 GB. * Boogie Preprocessor took 23.87 ms. Allocated memory is still 134.2 MB. Free memory was 105.6 MB in the beginning and 104.3 MB in the end (delta: 1.3 MB). Peak memory consumption was 1.3 MB. Max. memory is 7.1 GB. * RCFGBuilder took 663.36 ms. Allocated memory is still 134.2 MB. Free memory was 104.3 MB in the beginning and 89.1 MB in the end (delta: 15.2 MB). Peak memory consumption was 15.2 MB. Max. memory is 7.1 GB. * TraceAbstraction took 611253.76 ms. Allocated memory was 134.2 MB in the beginning and 676.9 MB in the end (delta: 542.6 MB). Free memory was 88.9 MB in the beginning and 479.8 MB in the end (delta: -390.8 MB). Peak memory consumption was 151.8 MB. Max. memory is 7.1 GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - PositiveResult [Line: 44]: assertion always holds For all program executions holds that assertion always holds at this location - PositiveResult [Line: 43]: 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, 611.1s OverallTime, 57 OverallIterations, 2 TraceHistogramMax, 170.8s AutomataDifference, 0.0s DeadEndRemovalTime, 25.7s HoareAnnotationTime, HoareTripleCheckerStatistics: 210 SDtfs, 887 SDslu, 1 SDs, 0 SdLazy, 8756 SolverSat, 645 SolverUnsat, 0 SolverUnknown, 0 SolverNotchecked, 17.0s Time, PredicateUnifierStatistics: 0 DeclaredPredicates, 875 GetRequests, 174 SyntacticMatches, 38 SemanticMatches, 663 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 2487 ImplicationChecksByTransitivity, 25.4s 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: 103.7s AutomataMinimizationTime, 57 MinimizatonAttempts, 1522 StatesRemovedByMinimization, 56 NontrivialMinimizations, HoareAnnotationStatistics: 0.0s HoareAnnotationTime, 1 LocationsWithAnnotation, 1 PreInvPairs, 64 NumberOfFragments, 342 HoareAnnotationTreeSize, 1 FomulaSimplifications, 181006621 FormulaSimplificationTreeSizeReduction, 11.0s HoareSimplificationTime, 1 FomulaSimplificationsInter, 10044512 FormulaSimplificationTreeSizeReductionInter, 14.4s HoareSimplificationTimeInter, RefinementEngineStatistics: TraceCheckStatistics: 0.0s SsaConstructionTime, 0.5s SatisfiabilityAnalysisTime, 306.0s 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! [MP z3 SMTLIB2_COMPLIANT=true -memory:8092 -smt2 -in -t:10000 (1)] Forcibly destroying the process Received shutdown request...