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_array_oct.epf -i ../../../trunk/examples/programs/heapseparator/speedup-poc-dd-4-unlimited.bpl -------------------------------------------------------------------------------- This is Ultimate 0.1.24-a9d37a5-m [2019-02-28 13:47:38,972 INFO L170 SettingsManager]: Resetting all preferences to default values... [2019-02-28 13:47:38,974 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2019-02-28 13:47:38,986 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2019-02-28 13:47:38,986 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2019-02-28 13:47:38,987 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2019-02-28 13:47:38,989 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2019-02-28 13:47:38,991 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2019-02-28 13:47:38,993 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2019-02-28 13:47:38,993 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2019-02-28 13:47:38,994 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2019-02-28 13:47:38,995 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2019-02-28 13:47:38,996 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2019-02-28 13:47:38,997 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2019-02-28 13:47:38,998 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2019-02-28 13:47:38,999 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2019-02-28 13:47:38,999 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2019-02-28 13:47:39,001 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2019-02-28 13:47:39,003 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2019-02-28 13:47:39,005 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2019-02-28 13:47:39,006 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2019-02-28 13:47:39,008 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2019-02-28 13:47:39,010 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2019-02-28 13:47:39,010 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2019-02-28 13:47:39,011 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2019-02-28 13:47:39,012 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2019-02-28 13:47:39,013 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2019-02-28 13:47:39,014 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2019-02-28 13:47:39,014 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2019-02-28 13:47:39,016 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2019-02-28 13:47:39,016 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2019-02-28 13:47:39,017 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2019-02-28 13:47:39,017 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2019-02-28 13:47:39,017 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2019-02-28 13:47:39,018 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2019-02-28 13:47:39,019 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2019-02-28 13:47:39,019 INFO L98 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/ai/array-bench/reach_32bit_array_oct.epf [2019-02-28 13:47:39,033 INFO L110 SettingsManager]: Loading preferences was successful [2019-02-28 13:47:39,033 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2019-02-28 13:47:39,034 INFO L131 SettingsManager]: Preferences of Boogie Preprocessor differ from their defaults: [2019-02-28 13:47:39,034 INFO L133 SettingsManager]: * Show backtranslation warnings=false [2019-02-28 13:47:39,034 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2019-02-28 13:47:39,035 INFO L133 SettingsManager]: * User list type=DISABLED [2019-02-28 13:47:39,035 INFO L133 SettingsManager]: * Inline calls to unimplemented procedures=true [2019-02-28 13:47:39,035 INFO L131 SettingsManager]: Preferences of Abstract Interpretation differ from their defaults: [2019-02-28 13:47:39,035 INFO L133 SettingsManager]: * Abstract domain for RCFG-of-the-future=PoormanAbstractDomain [2019-02-28 13:47:39,036 INFO L133 SettingsManager]: * Underlying domain=OctagonDomain [2019-02-28 13:47:39,036 INFO L133 SettingsManager]: * Abstract domain=ArrayDomain [2019-02-28 13:47:39,036 INFO L133 SettingsManager]: * Check feasibility of abstract posts with an SMT solver=true [2019-02-28 13:47:39,036 INFO L133 SettingsManager]: * Interval Domain=false [2019-02-28 13:47:39,037 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2019-02-28 13:47:39,037 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2019-02-28 13:47:39,037 INFO L133 SettingsManager]: * Use SBE=true [2019-02-28 13:47:39,038 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2019-02-28 13:47:39,038 INFO L133 SettingsManager]: * sizeof long=4 [2019-02-28 13:47:39,038 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2019-02-28 13:47:39,038 INFO L133 SettingsManager]: * sizeof POINTER=4 [2019-02-28 13:47:39,038 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2019-02-28 13:47:39,039 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2019-02-28 13:47:39,039 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2019-02-28 13:47:39,039 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2019-02-28 13:47:39,039 INFO L133 SettingsManager]: * sizeof long double=12 [2019-02-28 13:47:39,039 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2019-02-28 13:47:39,040 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2019-02-28 13:47:39,040 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2019-02-28 13:47:39,040 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2019-02-28 13:47:39,040 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2019-02-28 13:47:39,041 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:16092 -smt2 -in -t:200000 [2019-02-28 13:47:39,041 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2019-02-28 13:47:39,041 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2019-02-28 13:47:39,041 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2019-02-28 13:47:39,041 INFO L133 SettingsManager]: * Trace refinement strategy=TAIPAN [2019-02-28 13:47:39,042 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2019-02-28 13:47:39,042 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:16092 -smt2 -in [2019-02-28 13:47:39,042 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2019-02-28 13:47:39,042 INFO L133 SettingsManager]: * Abstract interpretation Mode=USE_PREDICATES [2019-02-28 13:47:39,077 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2019-02-28 13:47:39,093 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2019-02-28 13:47:39,098 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2019-02-28 13:47:39,100 INFO L271 PluginConnector]: Initializing Boogie PL CUP Parser... [2019-02-28 13:47:39,100 INFO L276 PluginConnector]: Boogie PL CUP Parser initialized [2019-02-28 13:47:39,102 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/programs/heapseparator/speedup-poc-dd-4-unlimited.bpl [2019-02-28 13:47:39,102 INFO L111 BoogieParser]: Parsing: '/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/programs/heapseparator/speedup-poc-dd-4-unlimited.bpl' [2019-02-28 13:47:39,153 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2019-02-28 13:47:39,155 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2019-02-28 13:47:39,155 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2019-02-28 13:47:39,156 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2019-02-28 13:47:39,156 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2019-02-28 13:47:39,175 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "speedup-poc-dd-4-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 28.02 01:47:39" (1/1) ... [2019-02-28 13:47:39,189 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "speedup-poc-dd-4-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 28.02 01:47:39" (1/1) ... [2019-02-28 13:47:39,219 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2019-02-28 13:47:39,220 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2019-02-28 13:47:39,220 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2019-02-28 13:47:39,220 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2019-02-28 13:47:39,232 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "speedup-poc-dd-4-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 28.02 01:47:39" (1/1) ... [2019-02-28 13:47:39,232 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "speedup-poc-dd-4-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 28.02 01:47:39" (1/1) ... [2019-02-28 13:47:39,233 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "speedup-poc-dd-4-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 28.02 01:47:39" (1/1) ... [2019-02-28 13:47:39,234 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "speedup-poc-dd-4-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 28.02 01:47:39" (1/1) ... [2019-02-28 13:47:39,237 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "speedup-poc-dd-4-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 28.02 01:47:39" (1/1) ... [2019-02-28 13:47:39,241 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "speedup-poc-dd-4-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 28.02 01:47:39" (1/1) ... [2019-02-28 13:47:39,242 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "speedup-poc-dd-4-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 28.02 01:47:39" (1/1) ... [2019-02-28 13:47:39,244 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2019-02-28 13:47:39,244 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2019-02-28 13:47:39,245 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2019-02-28 13:47:39,245 INFO L276 PluginConnector]: RCFGBuilder initialized [2019-02-28 13:47:39,246 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "speedup-poc-dd-4-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 28.02 01:47:39" (1/1) ... No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:16092 -smt2 -in -t:200000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:16092 -smt2 -in -t:200000 [2019-02-28 13:47:39,312 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2019-02-28 13:47:39,312 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2019-02-28 13:47:39,889 INFO L281 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2019-02-28 13:47:39,889 INFO L286 CfgBuilder]: Removed 11 assue(true) statements. [2019-02-28 13:47:39,891 INFO L202 PluginConnector]: Adding new model speedup-poc-dd-4-unlimited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 28.02 01:47:39 BoogieIcfgContainer [2019-02-28 13:47:39,891 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2019-02-28 13:47:39,892 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2019-02-28 13:47:39,892 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2019-02-28 13:47:39,895 INFO L276 PluginConnector]: TraceAbstraction initialized [2019-02-28 13:47:39,896 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "speedup-poc-dd-4-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 28.02 01:47:39" (1/2) ... [2019-02-28 13:47:39,897 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@319f0f36 and model type speedup-poc-dd-4-unlimited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 28.02 01:47:39, skipping insertion in model container [2019-02-28 13:47:39,897 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "speedup-poc-dd-4-unlimited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 28.02 01:47:39" (2/2) ... [2019-02-28 13:47:39,899 INFO L112 eAbstractionObserver]: Analyzing ICFG speedup-poc-dd-4-unlimited.bpl [2019-02-28 13:47:39,908 INFO L156 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2019-02-28 13:47:39,916 INFO L168 ceAbstractionStarter]: Appying trace abstraction to program that has 4 error locations. [2019-02-28 13:47:39,933 INFO L257 AbstractCegarLoop]: Starting to check reachability of 4 error locations. [2019-02-28 13:47:39,967 INFO L382 AbstractCegarLoop]: Interprodecural is true [2019-02-28 13:47:39,967 INFO L383 AbstractCegarLoop]: Hoare is true [2019-02-28 13:47:39,967 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2019-02-28 13:47:39,967 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2019-02-28 13:47:39,968 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2019-02-28 13:47:39,968 INFO L387 AbstractCegarLoop]: Difference is false [2019-02-28 13:47:39,968 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2019-02-28 13:47:39,968 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2019-02-28 13:47:39,983 INFO L276 IsEmpty]: Start isEmpty. Operand 11 states. [2019-02-28 13:47:39,990 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 3 [2019-02-28 13:47:39,990 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:47:39,991 INFO L402 BasicCegarLoop]: trace histogram [1, 1] [2019-02-28 13:47:39,994 INFO L423 AbstractCegarLoop]: === Iteration 1 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:47:40,000 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:47:40,000 INFO L82 PathProgramCache]: Analyzing trace with hash 980, now seen corresponding path program 1 times [2019-02-28 13:47:40,003 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:47:40,051 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:47:40,051 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:47:40,051 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:47:40,052 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:47:40,097 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:47:40,227 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;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {16#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-28 13:47:40,232 INFO L273 TraceCheckUtils]: 1: Hoare triple {16#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {15#false} is VALID [2019-02-28 13:47:40,234 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:47:40,236 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-02-28 13:47:40,236 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [1] imperfect sequences [] total 1 [2019-02-28 13:47:40,237 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-02-28 13:47:40,242 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 2 [2019-02-28 13:47:40,244 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:47:40,246 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2019-02-28 13:47:40,283 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 2 edges. 2 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:47:40,283 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2019-02-28 13:47:40,290 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2019-02-28 13:47:40,291 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-02-28 13:47:40,293 INFO L87 Difference]: Start difference. First operand 11 states. Second operand 3 states. [2019-02-28 13:47:40,654 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:47:40,654 INFO L93 Difference]: Finished difference Result 21 states and 27 transitions. [2019-02-28 13:47:40,655 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-02-28 13:47:40,655 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 2 [2019-02-28 13:47:40,655 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:47:40,659 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-02-28 13:47:40,663 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 27 transitions. [2019-02-28 13:47:40,666 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-02-28 13:47:40,672 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 27 transitions. [2019-02-28 13:47:40,672 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 27 transitions. [2019-02-28 13:47:40,837 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 27 edges. 27 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:47:40,850 INFO L225 Difference]: With dead ends: 21 [2019-02-28 13:47:40,852 INFO L226 Difference]: Without dead ends: 16 [2019-02-28 13:47:40,865 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 1 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-02-28 13:47:40,886 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 16 states. [2019-02-28 13:47:40,942 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 16 to 10. [2019-02-28 13:47:40,944 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:47:40,944 INFO L82 GeneralOperation]: Start isEquivalent. First operand 16 states. Second operand 10 states. [2019-02-28 13:47:40,945 INFO L74 IsIncluded]: Start isIncluded. First operand 16 states. Second operand 10 states. [2019-02-28 13:47:40,945 INFO L87 Difference]: Start difference. First operand 16 states. Second operand 10 states. [2019-02-28 13:47:40,951 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:47:40,951 INFO L93 Difference]: Finished difference Result 16 states and 22 transitions. [2019-02-28 13:47:40,951 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 22 transitions. [2019-02-28 13:47:40,953 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:47:40,954 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:47:40,954 INFO L74 IsIncluded]: Start isIncluded. First operand 10 states. Second operand 16 states. [2019-02-28 13:47:40,954 INFO L87 Difference]: Start difference. First operand 10 states. Second operand 16 states. [2019-02-28 13:47:40,957 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:47:40,957 INFO L93 Difference]: Finished difference Result 16 states and 22 transitions. [2019-02-28 13:47:40,957 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 22 transitions. [2019-02-28 13:47:40,958 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:47:40,962 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:47:40,962 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:47:40,962 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:47:40,963 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-28 13:47:40,967 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 17 transitions. [2019-02-28 13:47:40,973 INFO L78 Accepts]: Start accepts. Automaton has 10 states and 17 transitions. Word has length 2 [2019-02-28 13:47:40,973 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:47:40,973 INFO L480 AbstractCegarLoop]: Abstraction has 10 states and 17 transitions. [2019-02-28 13:47:40,973 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2019-02-28 13:47:40,974 INFO L276 IsEmpty]: Start isEmpty. Operand 10 states and 17 transitions. [2019-02-28 13:47:40,974 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-02-28 13:47:40,974 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:47:40,974 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-02-28 13:47:40,975 INFO L423 AbstractCegarLoop]: === Iteration 2 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:47:40,976 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:47:40,976 INFO L82 PathProgramCache]: Analyzing trace with hash 30306, now seen corresponding path program 1 times [2019-02-28 13:47:40,976 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:47:40,977 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:47:40,977 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:47:40,977 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:47:40,978 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:47:41,011 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:47:41,156 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;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {88#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:47:41,157 INFO L273 TraceCheckUtils]: 1: Hoare triple {88#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {89#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-28 13:47:41,173 INFO L273 TraceCheckUtils]: 2: Hoare triple {89#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {87#false} is VALID [2019-02-28 13:47:41,174 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:47:41,174 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:47:41,174 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:47:41,175 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-02-28 13:47:41,177 INFO L207 CegarAbsIntRunner]: [0], [16], [19] [2019-02-28 13:47:41,230 INFO L148 AbstractInterpreter]: Using domain ArrayDomain [2019-02-28 13:47:41,230 INFO L101 FixpointEngine]: Starting fixpoint engine with domain ArrayDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:48:19,735 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:48:19,737 INFO L272 AbstractInterpreter]: Visited 3 different actions 11 times. Merged at 1 different actions 4 times. Widened at 1 different actions 1 times. Found 5 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-28 13:48:19,742 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:48:19,743 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:48:19,744 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:48:19,744 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:48:19,756 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:48:19,757 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:48:19,765 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:48:19,767 WARN L254 TraceCheckSpWp]: Trace formula consists of 17 conjuncts, 12 conjunts are in the unsatisfiable core [2019-02-28 13:48:19,772 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:48:19,776 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:48:19,853 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:48:19,867 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:48:19,869 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-02-28 13:48:19,879 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:48:19,881 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:48:19,883 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:48:19,885 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-28 13:48:19,938 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:48:19,941 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:48:19,943 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:48:19,945 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:48:19,949 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:48:19,951 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:48:19,952 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 21 [2019-02-28 13:48:19,957 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:48:19,967 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:48:19,979 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:48:19,990 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:48:20,053 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 10 [2019-02-28 13:48:20,057 INFO L315 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-02-28 13:48:20,066 INFO L315 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:48:20,073 INFO L315 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:48:20,087 INFO L315 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:48:20,387 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:48:20,388 INFO L209 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:49, output treesize:45 [2019-02-28 13:48:20,394 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:48:20,394 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_22|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, |v_#valid_6|]. (let ((.cse1 (store |v_#valid_6| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= (select .cse0 ULTIMATE.start_main_p3) 0) (= (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4) 0) (= |#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)) (= 0 (select .cse1 ULTIMATE.start_main_p2))))) [2019-02-28 13:48:20,395 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:48:20,510 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:48:20,514 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:48:20,708 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:48:20,708 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:55, output treesize:35 [2019-02-28 13:48:20,721 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:48:20,722 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) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (store |v_#memory_int_23| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_23| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_23| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_23| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-02-28 13:48:20,722 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-02-28 13:48:20,841 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;#memory_int := #memory_int[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 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:48:20,844 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 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {97#(and (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)))} is VALID [2019-02-28 13:48:20,845 INFO L273 TraceCheckUtils]: 2: Hoare triple {97#(and (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)))} assume !(#memory_int[main_p1] >= 0); {87#false} is VALID [2019-02-28 13:48:20,846 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:48:20,846 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:48:20,870 INFO L273 TraceCheckUtils]: 2: Hoare triple {101#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {87#false} is VALID [2019-02-28 13:48:20,871 INFO L273 TraceCheckUtils]: 1: Hoare triple {105#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {101#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:48:20,873 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;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {105#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:48:20,874 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:48:20,896 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:48:20,896 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-02-28 13:48:20,896 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:48:20,897 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-02-28 13:48:20,897 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:48:20,897 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-02-28 13:48:20,935 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 6 edges. 6 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:48:20,935 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-02-28 13:48:20,936 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-02-28 13:48:20,936 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-02-28 13:48:20,936 INFO L87 Difference]: Start difference. First operand 10 states and 17 transitions. Second operand 6 states. [2019-02-28 13:48:21,469 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:48:21,470 INFO L93 Difference]: Finished difference Result 31 states and 44 transitions. [2019-02-28 13:48:21,470 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-02-28 13:48:21,470 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-02-28 13:48:21,470 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:48:21,470 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-28 13:48:21,472 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 44 transitions. [2019-02-28 13:48:21,472 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-28 13:48:21,474 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 44 transitions. [2019-02-28 13:48:21,474 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 44 transitions. [2019-02-28 13:48:21,586 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:48:21,589 INFO L225 Difference]: With dead ends: 31 [2019-02-28 13:48:21,589 INFO L226 Difference]: Without dead ends: 28 [2019-02-28 13:48:21,590 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 7 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-02-28 13:48:21,591 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 28 states. [2019-02-28 13:48:21,602 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 28 to 13. [2019-02-28 13:48:21,603 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:48:21,603 INFO L82 GeneralOperation]: Start isEquivalent. First operand 28 states. Second operand 13 states. [2019-02-28 13:48:21,603 INFO L74 IsIncluded]: Start isIncluded. First operand 28 states. Second operand 13 states. [2019-02-28 13:48:21,603 INFO L87 Difference]: Start difference. First operand 28 states. Second operand 13 states. [2019-02-28 13:48:21,606 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:48:21,607 INFO L93 Difference]: Finished difference Result 28 states and 40 transitions. [2019-02-28 13:48:21,607 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 40 transitions. [2019-02-28 13:48:21,607 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:48:21,607 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:48:21,607 INFO L74 IsIncluded]: Start isIncluded. First operand 13 states. Second operand 28 states. [2019-02-28 13:48:21,608 INFO L87 Difference]: Start difference. First operand 13 states. Second operand 28 states. [2019-02-28 13:48:21,610 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:48:21,610 INFO L93 Difference]: Finished difference Result 28 states and 40 transitions. [2019-02-28 13:48:21,610 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 40 transitions. [2019-02-28 13:48:21,611 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:48:21,611 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:48:21,611 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:48:21,611 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:48:21,611 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2019-02-28 13:48:21,612 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 25 transitions. [2019-02-28 13:48:21,613 INFO L78 Accepts]: Start accepts. Automaton has 13 states and 25 transitions. Word has length 3 [2019-02-28 13:48:21,613 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:48:21,613 INFO L480 AbstractCegarLoop]: Abstraction has 13 states and 25 transitions. [2019-02-28 13:48:21,613 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-02-28 13:48:21,613 INFO L276 IsEmpty]: Start isEmpty. Operand 13 states and 25 transitions. [2019-02-28 13:48:21,614 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-02-28 13:48:21,614 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:48:21,614 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-02-28 13:48:21,615 INFO L423 AbstractCegarLoop]: === Iteration 3 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:48:21,615 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:48:21,615 INFO L82 PathProgramCache]: Analyzing trace with hash 30432, now seen corresponding path program 1 times [2019-02-28 13:48:21,615 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:48:21,616 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:48:21,616 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:48:21,616 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:48:21,617 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:48:21,626 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:48:21,689 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;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {219#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:48:21,689 INFO L273 TraceCheckUtils]: 1: Hoare triple {219#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {219#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:48:21,696 INFO L273 TraceCheckUtils]: 2: Hoare triple {219#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {218#false} is VALID [2019-02-28 13:48:21,697 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:48:21,697 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-02-28 13:48:21,697 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [1] imperfect sequences [] total 1 [2019-02-28 13:48:21,697 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-02-28 13:48:21,698 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 3 [2019-02-28 13:48:21,698 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:48:21,698 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2019-02-28 13:48:21,702 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 3 edges. 3 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:48:21,702 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2019-02-28 13:48:21,702 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2019-02-28 13:48:21,702 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-02-28 13:48:21,703 INFO L87 Difference]: Start difference. First operand 13 states and 25 transitions. Second operand 3 states. [2019-02-28 13:48:21,787 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:48:21,788 INFO L93 Difference]: Finished difference Result 15 states and 25 transitions. [2019-02-28 13:48:21,788 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-02-28 13:48:21,788 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 3 [2019-02-28 13:48:21,788 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:48:21,789 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-02-28 13:48:21,789 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-02-28 13:48:21,790 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-02-28 13:48:21,790 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-02-28 13:48:21,791 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 20 transitions. [2019-02-28 13:48:21,811 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 20 edges. 20 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:48:21,811 INFO L225 Difference]: With dead ends: 15 [2019-02-28 13:48:21,812 INFO L226 Difference]: Without dead ends: 14 [2019-02-28 13:48:21,812 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 1 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-02-28 13:48:21,812 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 14 states. [2019-02-28 13:48:21,849 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 14 to 13. [2019-02-28 13:48:21,849 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:48:21,849 INFO L82 GeneralOperation]: Start isEquivalent. First operand 14 states. Second operand 13 states. [2019-02-28 13:48:21,849 INFO L74 IsIncluded]: Start isIncluded. First operand 14 states. Second operand 13 states. [2019-02-28 13:48:21,850 INFO L87 Difference]: Start difference. First operand 14 states. Second operand 13 states. [2019-02-28 13:48:21,852 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:48:21,852 INFO L93 Difference]: Finished difference Result 14 states and 24 transitions. [2019-02-28 13:48:21,852 INFO L276 IsEmpty]: Start isEmpty. Operand 14 states and 24 transitions. [2019-02-28 13:48:21,853 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:48:21,853 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:48:21,853 INFO L74 IsIncluded]: Start isIncluded. First operand 13 states. Second operand 14 states. [2019-02-28 13:48:21,853 INFO L87 Difference]: Start difference. First operand 13 states. Second operand 14 states. [2019-02-28 13:48:21,854 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:48:21,855 INFO L93 Difference]: Finished difference Result 14 states and 24 transitions. [2019-02-28 13:48:21,855 INFO L276 IsEmpty]: Start isEmpty. Operand 14 states and 24 transitions. [2019-02-28 13:48:21,855 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:48:21,855 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:48:21,855 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:48:21,856 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:48:21,856 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2019-02-28 13:48:21,857 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 24 transitions. [2019-02-28 13:48:21,857 INFO L78 Accepts]: Start accepts. Automaton has 13 states and 24 transitions. Word has length 3 [2019-02-28 13:48:21,857 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:48:21,857 INFO L480 AbstractCegarLoop]: Abstraction has 13 states and 24 transitions. [2019-02-28 13:48:21,858 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2019-02-28 13:48:21,858 INFO L276 IsEmpty]: Start isEmpty. Operand 13 states and 24 transitions. [2019-02-28 13:48:21,858 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-02-28 13:48:21,858 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:48:21,858 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-02-28 13:48:21,859 INFO L423 AbstractCegarLoop]: === Iteration 4 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:48:21,859 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:48:21,859 INFO L82 PathProgramCache]: Analyzing trace with hash 29996, now seen corresponding path program 1 times [2019-02-28 13:48:21,859 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:48:21,860 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:48:21,860 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:48:21,860 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:48:21,860 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:48:21,868 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:48:21,916 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;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {286#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-28 13:48:21,917 INFO L273 TraceCheckUtils]: 1: Hoare triple {286#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {287#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:48:21,918 INFO L273 TraceCheckUtils]: 2: Hoare triple {287#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {285#false} is VALID [2019-02-28 13:48:21,918 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:48:21,918 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:48:21,919 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:48:21,919 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-02-28 13:48:21,919 INFO L207 CegarAbsIntRunner]: [0], [6], [19] [2019-02-28 13:48:21,920 INFO L148 AbstractInterpreter]: Using domain ArrayDomain [2019-02-28 13:48:21,921 INFO L101 FixpointEngine]: Starting fixpoint engine with domain ArrayDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:48:24,548 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:48:24,549 INFO L272 AbstractInterpreter]: Visited 3 different actions 5 times. Merged at 1 different actions 1 times. Never widened. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-28 13:48:24,549 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:48:24,549 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:48:24,550 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:48:24,550 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:48:24,560 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:48:24,560 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:48:24,564 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:48:24,564 INFO L256 TraceCheckSpWp]: Trace formula consists of 17 conjuncts, 7 conjunts are in the unsatisfiable core [2019-02-28 13:48:24,567 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:48:24,567 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:48:24,582 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:48:24,590 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:48:24,591 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-02-28 13:48:24,595 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:48:24,597 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:48:24,597 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:48:24,598 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-28 13:48:24,607 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:48:24,607 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:48:24,608 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:48:24,631 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 6 case distinctions, treesize of input 22 treesize of output 30 [2019-02-28 13:48:24,638 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:48:24,649 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:48:24,657 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:48:24,665 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:48:24,705 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2019-02-28 13:48:24,706 INFO L315 ElimStorePlain]: Start of recursive call 8: End of recursive call: and 1 xjuncts. [2019-02-28 13:48:24,709 INFO L315 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:48:24,716 INFO L315 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:48:24,733 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 2 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:48:24,734 INFO L209 ElimStorePlain]: Needed 8 recursive calls to eliminate 5 variables, input treesize:35, output treesize:33 [2019-02-28 13:48:24,739 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:48:24,740 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_25|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, |v_#valid_7|]. (let ((.cse0 (store |v_#valid_7| ULTIMATE.start_main_p1 1))) (and (= (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|) (= 0 (select .cse0 ULTIMATE.start_main_p2)) (= (select (store .cse0 ULTIMATE.start_main_p2 1) ULTIMATE.start_main_p3) 0))) [2019-02-28 13:48:24,740 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:48:24,781 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 21 [2019-02-28 13:48:24,784 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:48:24,797 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:48:24,797 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:38, output treesize:20 [2019-02-28 13:48:24,801 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:48:24,801 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_26|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (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) (= 0 (select |v_#memory_int_26| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_26| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) [2019-02-28 13:48:24,801 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-02-28 13:48:24,818 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;#memory_int := #memory_int[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 (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-02-28 13:48:24,824 INFO L273 TraceCheckUtils]: 1: Hoare triple {291#(and (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} #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_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} is VALID [2019-02-28 13:48:24,825 INFO L273 TraceCheckUtils]: 2: Hoare triple {295#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} assume !(#memory_int[main_p1] >= 0); {285#false} is VALID [2019-02-28 13:48:24,826 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:48:24,826 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:48:24,843 INFO L273 TraceCheckUtils]: 2: Hoare triple {299#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {285#false} is VALID [2019-02-28 13:48:24,844 INFO L273 TraceCheckUtils]: 1: Hoare triple {303#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {299#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:48:24,846 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;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {303#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} is VALID [2019-02-28 13:48:24,846 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:48:24,865 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-02-28 13:48:24,866 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 6 [2019-02-28 13:48:24,866 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-02-28 13:48:24,866 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 3 [2019-02-28 13:48:24,866 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:48:24,866 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-02-28 13:48:24,870 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 3 edges. 3 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:48:24,870 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-02-28 13:48:24,870 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-02-28 13:48:24,870 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-02-28 13:48:24,871 INFO L87 Difference]: Start difference. First operand 13 states and 24 transitions. Second operand 4 states. [2019-02-28 13:48:24,962 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:48:24,962 INFO L93 Difference]: Finished difference Result 18 states and 41 transitions. [2019-02-28 13:48:24,962 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2019-02-28 13:48:24,963 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 3 [2019-02-28 13:48:24,963 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:48:24,963 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-02-28 13:48:24,964 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 24 transitions. [2019-02-28 13:48:24,964 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-02-28 13:48:24,965 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 24 transitions. [2019-02-28 13:48:24,965 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 24 transitions. [2019-02-28 13:48:25,037 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 24 edges. 24 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:48:25,038 INFO L225 Difference]: With dead ends: 18 [2019-02-28 13:48:25,038 INFO L226 Difference]: Without dead ends: 17 [2019-02-28 13:48:25,039 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-02-28 13:48:25,039 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 17 states. [2019-02-28 13:48:25,077 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 17 to 16. [2019-02-28 13:48:25,078 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:48:25,078 INFO L82 GeneralOperation]: Start isEquivalent. First operand 17 states. Second operand 16 states. [2019-02-28 13:48:25,078 INFO L74 IsIncluded]: Start isIncluded. First operand 17 states. Second operand 16 states. [2019-02-28 13:48:25,078 INFO L87 Difference]: Start difference. First operand 17 states. Second operand 16 states. [2019-02-28 13:48:25,082 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:48:25,082 INFO L93 Difference]: Finished difference Result 17 states and 40 transitions. [2019-02-28 13:48:25,082 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 40 transitions. [2019-02-28 13:48:25,083 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:48:25,083 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:48:25,083 INFO L74 IsIncluded]: Start isIncluded. First operand 16 states. Second operand 17 states. [2019-02-28 13:48:25,083 INFO L87 Difference]: Start difference. First operand 16 states. Second operand 17 states. [2019-02-28 13:48:25,085 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:48:25,085 INFO L93 Difference]: Finished difference Result 17 states and 40 transitions. [2019-02-28 13:48:25,085 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 40 transitions. [2019-02-28 13:48:25,086 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:48:25,086 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:48:25,086 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:48:25,086 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:48:25,086 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 16 states. [2019-02-28 13:48:25,088 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 40 transitions. [2019-02-28 13:48:25,088 INFO L78 Accepts]: Start accepts. Automaton has 16 states and 40 transitions. Word has length 3 [2019-02-28 13:48:25,088 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:48:25,088 INFO L480 AbstractCegarLoop]: Abstraction has 16 states and 40 transitions. [2019-02-28 13:48:25,089 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-02-28 13:48:25,089 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 40 transitions. [2019-02-28 13:48:25,089 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-02-28 13:48:25,089 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:48:25,089 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-02-28 13:48:25,090 INFO L423 AbstractCegarLoop]: === Iteration 5 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:48:25,090 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:48:25,090 INFO L82 PathProgramCache]: Analyzing trace with hash 30120, now seen corresponding path program 1 times [2019-02-28 13:48:25,090 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:48:25,091 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:48:25,091 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:48:25,091 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:48:25,091 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:48:25,100 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:48:25,158 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;#memory_int := #memory_int[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_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-02-28 13:48:25,159 INFO L273 TraceCheckUtils]: 1: Hoare triple {388#(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]; {389#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-28 13:48:25,160 INFO L273 TraceCheckUtils]: 2: Hoare triple {389#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {387#false} is VALID [2019-02-28 13:48:25,160 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:48:25,161 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:48:25,161 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:48:25,161 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-02-28 13:48:25,161 INFO L207 CegarAbsIntRunner]: [0], [10], [19] [2019-02-28 13:48:25,164 INFO L148 AbstractInterpreter]: Using domain ArrayDomain [2019-02-28 13:48:25,164 INFO L101 FixpointEngine]: Starting fixpoint engine with domain ArrayDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:48:27,467 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:48:27,467 INFO L272 AbstractInterpreter]: Visited 3 different actions 5 times. Merged at 1 different actions 1 times. Never widened. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-28 13:48:27,467 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:48:27,467 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:48:27,468 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:48:27,468 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:48:27,477 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:48:27,477 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:48:27,482 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:48:27,482 INFO L256 TraceCheckSpWp]: Trace formula consists of 17 conjuncts, 7 conjunts are in the unsatisfiable core [2019-02-28 13:48:27,484 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:48:27,485 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:48:27,552 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2019-02-28 13:48:27,554 INFO L315 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-02-28 13:48:27,559 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:48:27,572 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:48:27,590 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:48:27,600 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-02-28 13:48:27,614 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-28 13:48:27,656 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 6 case distinctions, treesize of input 22 treesize of output 30 [2019-02-28 13:48:27,663 INFO L315 ElimStorePlain]: Start of recursive call 8: End of recursive call: and 1 xjuncts. [2019-02-28 13:48:27,674 INFO L315 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:48:27,686 INFO L315 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:48:27,697 INFO L315 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:48:27,723 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:48:27,723 INFO L209 ElimStorePlain]: Needed 8 recursive calls to eliminate 4 variables, input treesize:35, output treesize:33 [2019-02-28 13:48:27,727 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:48:27,727 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_28|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, |v_#valid_8|]. (let ((.cse0 (store |v_#valid_8| ULTIMATE.start_main_p1 1))) (and (= |#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)) (= 0 (select .cse0 ULTIMATE.start_main_p2)) (= (select (store .cse0 ULTIMATE.start_main_p2 1) ULTIMATE.start_main_p3) 0))) [2019-02-28 13:48:27,727 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:48:27,853 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 21 [2019-02-28 13:48:27,855 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:48:27,866 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:48:27,867 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:38, output treesize:22 [2019-02-28 13:48:27,879 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:48:27,879 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_29|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_29| ULTIMATE.start_main_p2))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_29| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= .cse0 0) (= (store |v_#memory_int_29| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_29| ULTIMATE.start_main_p3) 0))) [2019-02-28 13:48:27,879 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [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) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1))) [2019-02-28 13:48:27,901 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;#memory_int := #memory_int[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 (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-02-28 13:48:27,907 INFO L273 TraceCheckUtils]: 1: Hoare triple {393#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {397#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-02-28 13:48:27,908 INFO L273 TraceCheckUtils]: 2: Hoare triple {397#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} assume !(#memory_int[main_p1] >= 0); {387#false} is VALID [2019-02-28 13:48:27,909 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:48:27,909 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:48:27,931 INFO L273 TraceCheckUtils]: 2: Hoare triple {401#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {387#false} is VALID [2019-02-28 13:48:27,933 INFO L273 TraceCheckUtils]: 1: Hoare triple {405#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {401#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:48:27,935 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;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {405#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:48:27,935 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:48:27,955 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:48:27,955 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-02-28 13:48:27,955 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:48:27,956 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-02-28 13:48:27,956 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:48:27,956 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-02-28 13:48:27,966 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 6 edges. 6 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:48:27,966 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-02-28 13:48:27,966 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-02-28 13:48:27,966 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-02-28 13:48:27,967 INFO L87 Difference]: Start difference. First operand 16 states and 40 transitions. Second operand 6 states. [2019-02-28 13:48:28,397 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:48:28,397 INFO L93 Difference]: Finished difference Result 32 states and 62 transitions. [2019-02-28 13:48:28,397 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-02-28 13:48:28,397 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-02-28 13:48:28,398 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:48:28,398 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-28 13:48:28,399 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 41 transitions. [2019-02-28 13:48:28,399 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-28 13:48:28,400 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 41 transitions. [2019-02-28 13:48:28,400 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 41 transitions. [2019-02-28 13:48:28,496 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 41 edges. 41 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:48:28,498 INFO L225 Difference]: With dead ends: 32 [2019-02-28 13:48:28,498 INFO L226 Difference]: Without dead ends: 31 [2019-02-28 13:48:28,499 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-02-28 13:48:28,499 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 31 states. [2019-02-28 13:48:28,530 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 31 to 18. [2019-02-28 13:48:28,530 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:48:28,531 INFO L82 GeneralOperation]: Start isEquivalent. First operand 31 states. Second operand 18 states. [2019-02-28 13:48:28,531 INFO L74 IsIncluded]: Start isIncluded. First operand 31 states. Second operand 18 states. [2019-02-28 13:48:28,531 INFO L87 Difference]: Start difference. First operand 31 states. Second operand 18 states. [2019-02-28 13:48:28,535 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:48:28,535 INFO L93 Difference]: Finished difference Result 31 states and 60 transitions. [2019-02-28 13:48:28,535 INFO L276 IsEmpty]: Start isEmpty. Operand 31 states and 60 transitions. [2019-02-28 13:48:28,536 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:48:28,536 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:48:28,536 INFO L74 IsIncluded]: Start isIncluded. First operand 18 states. Second operand 31 states. [2019-02-28 13:48:28,536 INFO L87 Difference]: Start difference. First operand 18 states. Second operand 31 states. [2019-02-28 13:48:28,538 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:48:28,538 INFO L93 Difference]: Finished difference Result 31 states and 60 transitions. [2019-02-28 13:48:28,538 INFO L276 IsEmpty]: Start isEmpty. Operand 31 states and 60 transitions. [2019-02-28 13:48:28,539 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:48:28,539 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:48:28,539 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:48:28,539 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:48:28,539 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 18 states. [2019-02-28 13:48:28,541 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 50 transitions. [2019-02-28 13:48:28,541 INFO L78 Accepts]: Start accepts. Automaton has 18 states and 50 transitions. Word has length 3 [2019-02-28 13:48:28,541 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:48:28,541 INFO L480 AbstractCegarLoop]: Abstraction has 18 states and 50 transitions. [2019-02-28 13:48:28,541 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-02-28 13:48:28,542 INFO L276 IsEmpty]: Start isEmpty. Operand 18 states and 50 transitions. [2019-02-28 13:48:28,542 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-28 13:48:28,542 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:48:28,542 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-28 13:48:28,542 INFO L423 AbstractCegarLoop]: === Iteration 6 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:48:28,543 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:48:28,543 INFO L82 PathProgramCache]: Analyzing trace with hash 939538, now seen corresponding path program 1 times [2019-02-28 13:48:28,543 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:48:28,544 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:48:28,544 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:48:28,544 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:48:28,544 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:48:28,557 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:48:28,850 WARN L181 SmtUtils]: Spent 105.00 ms on a formula simplification. DAG size of input: 12 DAG size of output: 5 [2019-02-28 13:48:28,889 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;#memory_int := #memory_int[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 (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (or (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:48:28,902 INFO L273 TraceCheckUtils]: 1: Hoare triple {540#(and (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (or (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {541#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:48:28,915 INFO L273 TraceCheckUtils]: 2: Hoare triple {541#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {541#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:48:28,928 INFO L273 TraceCheckUtils]: 3: Hoare triple {541#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {539#false} is VALID [2019-02-28 13:48:28,928 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:48:28,928 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:48:28,929 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:48:28,929 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-28 13:48:28,929 INFO L207 CegarAbsIntRunner]: [0], [16], [20], [21] [2019-02-28 13:48:28,930 INFO L148 AbstractInterpreter]: Using domain ArrayDomain [2019-02-28 13:48:28,931 INFO L101 FixpointEngine]: Starting fixpoint engine with domain ArrayDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:49:01,147 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:49:01,148 INFO L272 AbstractInterpreter]: Visited 4 different actions 12 times. Merged at 1 different actions 4 times. Widened at 1 different actions 1 times. Found 5 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-28 13:49:01,148 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:49:01,149 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:49:01,149 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:49:01,149 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:49:01,183 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:49:01,183 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:49:01,189 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:49:01,190 WARN L254 TraceCheckSpWp]: Trace formula consists of 18 conjuncts, 12 conjunts are in the unsatisfiable core [2019-02-28 13:49:01,194 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:49:01,195 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:49:01,341 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 10 [2019-02-28 13:49:01,342 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:49:01,344 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:01,352 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:01,366 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:01,387 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:49:01,397 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 5 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-02-28 13:49:01,405 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 6 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-28 13:49:01,454 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 21 [2019-02-28 13:49:01,456 INFO L315 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-02-28 13:49:01,464 INFO L315 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:01,473 INFO L315 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:01,479 INFO L315 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:01,503 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:49:01,503 INFO L209 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:49, output treesize:45 [2019-02-28 13:49:01,509 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:49:01,510 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_31|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, |v_#valid_9|]. (let ((.cse0 (store |v_#valid_9| ULTIMATE.start_main_p1 1))) (let ((.cse1 (store .cse0 ULTIMATE.start_main_p2 1))) (and (= (select .cse0 ULTIMATE.start_main_p2) 0) (= (select .cse1 ULTIMATE.start_main_p3) 0) (= |#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)) (= (select (store .cse1 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4) 0)))) [2019-02-28 13:49:01,510 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p1]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:49:01,607 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:49:01,610 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:49:01,630 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:49:01,631 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:55, output treesize:35 [2019-02-28 13:49:02,508 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:49:02,509 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_32|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p1]. (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) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_32| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_32| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= .cse0 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-02-28 13:49:02,509 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-02-28 13:49:02,571 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;#memory_int := #memory_int[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 (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-28 13:49:02,573 INFO L273 TraceCheckUtils]: 1: Hoare triple {545#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (= 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 (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-02-28 13:49:02,574 INFO L273 TraceCheckUtils]: 2: Hoare triple {549#(and (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {549#(and (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-02-28 13:49:02,575 INFO L273 TraceCheckUtils]: 3: Hoare triple {549#(and (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {539#false} is VALID [2019-02-28 13:49:02,575 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:49:02,575 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:49:02,589 INFO L273 TraceCheckUtils]: 3: Hoare triple {541#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {539#false} is VALID [2019-02-28 13:49:02,590 INFO L273 TraceCheckUtils]: 2: Hoare triple {541#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {541#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:49:02,591 INFO L273 TraceCheckUtils]: 1: Hoare triple {562#(<= (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]; {541#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:49:02,593 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;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {562#(<= (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:49:02,594 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:49:02,613 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-02-28 13:49:02,613 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 5 [2019-02-28 13:49:02,613 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-02-28 13:49:02,613 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-02-28 13:49:02,614 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:49:02,614 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-02-28 13:49:02,618 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 4 edges. 4 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:49:02,618 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-02-28 13:49:02,618 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-02-28 13:49:02,618 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=19, Invalid=23, Unknown=0, NotChecked=0, Total=42 [2019-02-28 13:49:02,618 INFO L87 Difference]: Start difference. First operand 18 states and 50 transitions. Second operand 4 states. [2019-02-28 13:49:02,708 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:49:02,708 INFO L93 Difference]: Finished difference Result 22 states and 58 transitions. [2019-02-28 13:49:02,708 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-02-28 13:49:02,709 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-02-28 13:49:02,709 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:49:02,709 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-02-28 13:49:02,710 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-02-28 13:49:02,710 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-02-28 13:49:02,710 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-02-28 13:49:02,710 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 20 transitions. [2019-02-28 13:49:02,727 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 20 edges. 20 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:49:02,729 INFO L225 Difference]: With dead ends: 22 [2019-02-28 13:49:02,729 INFO L226 Difference]: Without dead ends: 21 [2019-02-28 13:49:02,730 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 8 GetRequests, 3 SyntacticMatches, 0 SemanticMatches, 5 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 8 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=19, Invalid=23, Unknown=0, NotChecked=0, Total=42 [2019-02-28 13:49:02,730 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 21 states. [2019-02-28 13:49:02,765 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 21 to 20. [2019-02-28 13:49:02,765 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:49:02,765 INFO L82 GeneralOperation]: Start isEquivalent. First operand 21 states. Second operand 20 states. [2019-02-28 13:49:02,765 INFO L74 IsIncluded]: Start isIncluded. First operand 21 states. Second operand 20 states. [2019-02-28 13:49:02,766 INFO L87 Difference]: Start difference. First operand 21 states. Second operand 20 states. [2019-02-28 13:49:02,767 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:49:02,767 INFO L93 Difference]: Finished difference Result 21 states and 57 transitions. [2019-02-28 13:49:02,768 INFO L276 IsEmpty]: Start isEmpty. Operand 21 states and 57 transitions. [2019-02-28 13:49:02,768 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:49:02,768 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:49:02,768 INFO L74 IsIncluded]: Start isIncluded. First operand 20 states. Second operand 21 states. [2019-02-28 13:49:02,768 INFO L87 Difference]: Start difference. First operand 20 states. Second operand 21 states. [2019-02-28 13:49:02,770 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:49:02,770 INFO L93 Difference]: Finished difference Result 21 states and 57 transitions. [2019-02-28 13:49:02,770 INFO L276 IsEmpty]: Start isEmpty. Operand 21 states and 57 transitions. [2019-02-28 13:49:02,771 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:49:02,771 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:49:02,771 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:49:02,771 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:49:02,771 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 20 states. [2019-02-28 13:49:02,772 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 57 transitions. [2019-02-28 13:49:02,773 INFO L78 Accepts]: Start accepts. Automaton has 20 states and 57 transitions. Word has length 4 [2019-02-28 13:49:02,773 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:49:02,773 INFO L480 AbstractCegarLoop]: Abstraction has 20 states and 57 transitions. [2019-02-28 13:49:02,773 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-02-28 13:49:02,773 INFO L276 IsEmpty]: Start isEmpty. Operand 20 states and 57 transitions. [2019-02-28 13:49:02,774 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-28 13:49:02,774 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:49:02,774 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-28 13:49:02,774 INFO L423 AbstractCegarLoop]: === Iteration 7 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:49:02,774 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:49:02,774 INFO L82 PathProgramCache]: Analyzing trace with hash 939226, now seen corresponding path program 1 times [2019-02-28 13:49:02,775 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:49:02,775 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:49:02,775 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:49:02,776 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:49:02,776 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:49:02,785 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:49:02,876 INFO L273 TraceCheckUtils]: 0: Hoare triple {667#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {669#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:49:02,877 INFO L273 TraceCheckUtils]: 1: Hoare triple {669#(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]; {670#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-02-28 13:49:02,878 INFO L273 TraceCheckUtils]: 2: Hoare triple {670#(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]; {671#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-28 13:49:02,879 INFO L273 TraceCheckUtils]: 3: Hoare triple {671#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {668#false} is VALID [2019-02-28 13:49:02,879 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:49:02,879 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:49:02,879 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:49:02,879 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-28 13:49:02,880 INFO L207 CegarAbsIntRunner]: [0], [10], [16], [19] [2019-02-28 13:49:02,881 INFO L148 AbstractInterpreter]: Using domain ArrayDomain [2019-02-28 13:49:02,881 INFO L101 FixpointEngine]: Starting fixpoint engine with domain ArrayDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:49:14,601 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:49:14,601 INFO L272 AbstractInterpreter]: Visited 4 different actions 10 times. Merged at 2 different actions 2 times. Never widened. Found 6 fixpoints after 3 different actions. Largest state had 0 variables. [2019-02-28 13:49:14,601 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:49:14,601 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:49:14,602 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:49:14,602 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:49:14,611 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:49:14,612 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:49:14,615 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:49:14,616 WARN L254 TraceCheckSpWp]: Trace formula consists of 18 conjuncts, 13 conjunts are in the unsatisfiable core [2019-02-28 13:49:14,621 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:49:14,621 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:49:14,651 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:49:14,657 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:14,658 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-02-28 13:49:14,669 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:14,671 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:14,673 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:14,674 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-28 13:49:14,684 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:14,686 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:14,689 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:14,692 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:14,692 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:14,693 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:14,694 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 21 [2019-02-28 13:49:14,696 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:49:14,706 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:14,714 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:14,723 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:14,798 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 10 [2019-02-28 13:49:14,799 INFO L315 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-02-28 13:49:14,804 INFO L315 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:14,811 INFO L315 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:14,822 INFO L315 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:14,844 INFO L315 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 2 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-02-28 13:49:14,844 INFO L209 ElimStorePlain]: Needed 9 recursive calls to eliminate 3 variables, input treesize:49, output treesize:45 [2019-02-28 13:49:14,849 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:49:14,849 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_34|, ULTIMATE.start_main_p3, |v_#valid_10|]. (let ((.cse1 (store |v_#valid_10| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= 0 (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4)) (= (store (store (store (store |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|) (= (select .cse1 ULTIMATE.start_main_p2) 0) (= 0 (select .cse0 ULTIMATE.start_main_p3))))) [2019-02-28 13:49:14,849 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:49:14,911 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:49:14,919 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:49:14,939 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:49:14,940 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:55, output treesize:35 [2019-02-28 13:49:15,123 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:49:15,123 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)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (store |v_#memory_int_35| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_35| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_35| ULTIMATE.start_main_p3)) (= .cse0 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-02-28 13:49:15,124 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-02-28 13:49:15,186 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 3 disjoint index pairs (out of 6 index pairs), introduced 2 new quantified variables, introduced 5 case distinctions, treesize of input 33 treesize of output 35 [2019-02-28 13:49:15,189 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:49:15,206 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:49:15,206 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:45, output treesize:33 [2019-02-28 13:49:15,210 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:49:15,210 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 (= .cse0 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (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|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) [2019-02-28 13:49:15,210 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1))) [2019-02-28 13:49:15,234 INFO L273 TraceCheckUtils]: 0: Hoare triple {667#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {675#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:49:15,241 INFO L273 TraceCheckUtils]: 1: Hoare triple {675#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {679#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-02-28 13:49:15,242 INFO L273 TraceCheckUtils]: 2: Hoare triple {679#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {683#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-02-28 13:49:15,243 INFO L273 TraceCheckUtils]: 3: Hoare triple {683#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} assume !(#memory_int[main_p1] >= 0); {668#false} is VALID [2019-02-28 13:49:15,244 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:49:15,244 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:49:15,291 INFO L273 TraceCheckUtils]: 3: Hoare triple {687#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {668#false} is VALID [2019-02-28 13:49:15,293 INFO L273 TraceCheckUtils]: 2: Hoare triple {691#(<= 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]; {687#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:49:15,294 INFO L273 TraceCheckUtils]: 1: Hoare triple {695#(<= 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]; {691#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:49:15,296 INFO L273 TraceCheckUtils]: 0: Hoare triple {667#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {695#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:49:15,296 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:49:15,316 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:49:15,316 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-02-28 13:49:15,316 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:49:15,316 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-28 13:49:15,317 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:49:15,317 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-28 13:49:15,343 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:49:15,343 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-28 13:49:15,344 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-28 13:49:15,344 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=43, Invalid=67, Unknown=0, NotChecked=0, Total=110 [2019-02-28 13:49:15,344 INFO L87 Difference]: Start difference. First operand 20 states and 57 transitions. Second operand 8 states. [2019-02-28 13:49:15,971 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:49:15,971 INFO L93 Difference]: Finished difference Result 37 states and 74 transitions. [2019-02-28 13:49:15,972 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-02-28 13:49:15,972 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-28 13:49:15,972 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:49:15,972 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:49:15,973 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 48 transitions. [2019-02-28 13:49:15,973 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:49:15,974 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 48 transitions. [2019-02-28 13:49:15,974 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 48 transitions. [2019-02-28 13:49:16,042 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 48 edges. 48 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:49:16,043 INFO L225 Difference]: With dead ends: 37 [2019-02-28 13:49:16,043 INFO L226 Difference]: Without dead ends: 36 [2019-02-28 13:49:16,044 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-02-28 13:49:16,044 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 36 states. [2019-02-28 13:49:16,096 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 36 to 17. [2019-02-28 13:49:16,097 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:49:16,097 INFO L82 GeneralOperation]: Start isEquivalent. First operand 36 states. Second operand 17 states. [2019-02-28 13:49:16,097 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 17 states. [2019-02-28 13:49:16,097 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 17 states. [2019-02-28 13:49:16,099 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:49:16,099 INFO L93 Difference]: Finished difference Result 36 states and 72 transitions. [2019-02-28 13:49:16,099 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 72 transitions. [2019-02-28 13:49:16,099 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:49:16,100 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:49:16,100 INFO L74 IsIncluded]: Start isIncluded. First operand 17 states. Second operand 36 states. [2019-02-28 13:49:16,100 INFO L87 Difference]: Start difference. First operand 17 states. Second operand 36 states. [2019-02-28 13:49:16,102 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:49:16,102 INFO L93 Difference]: Finished difference Result 36 states and 72 transitions. [2019-02-28 13:49:16,102 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 72 transitions. [2019-02-28 13:49:16,102 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:49:16,103 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:49:16,103 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:49:16,103 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:49:16,103 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 17 states. [2019-02-28 13:49:16,104 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 41 transitions. [2019-02-28 13:49:16,104 INFO L78 Accepts]: Start accepts. Automaton has 17 states and 41 transitions. Word has length 4 [2019-02-28 13:49:16,104 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:49:16,104 INFO L480 AbstractCegarLoop]: Abstraction has 17 states and 41 transitions. [2019-02-28 13:49:16,104 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-28 13:49:16,105 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 41 transitions. [2019-02-28 13:49:16,105 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-28 13:49:16,105 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:49:16,105 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-28 13:49:16,105 INFO L423 AbstractCegarLoop]: === Iteration 8 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:49:16,106 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:49:16,106 INFO L82 PathProgramCache]: Analyzing trace with hash 939350, now seen corresponding path program 1 times [2019-02-28 13:49:16,106 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:49:16,107 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:49:16,107 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:49:16,107 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:49:16,107 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:49:16,117 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:49:16,216 INFO L273 TraceCheckUtils]: 0: Hoare triple {844#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {846#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-28 13:49:16,218 INFO L273 TraceCheckUtils]: 1: Hoare triple {846#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {847#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-28 13:49:16,218 INFO L273 TraceCheckUtils]: 2: Hoare triple {847#(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]; {848#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-28 13:49:16,219 INFO L273 TraceCheckUtils]: 3: Hoare triple {848#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {845#false} is VALID [2019-02-28 13:49:16,219 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:49:16,219 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:49:16,220 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:49:16,220 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-28 13:49:16,220 INFO L207 CegarAbsIntRunner]: [0], [14], [16], [19] [2019-02-28 13:49:16,221 INFO L148 AbstractInterpreter]: Using domain ArrayDomain [2019-02-28 13:49:16,221 INFO L101 FixpointEngine]: Starting fixpoint engine with domain ArrayDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:49:28,625 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:49:28,625 INFO L272 AbstractInterpreter]: Visited 4 different actions 10 times. Merged at 2 different actions 2 times. Never widened. Found 6 fixpoints after 3 different actions. Largest state had 0 variables. [2019-02-28 13:49:28,626 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:49:28,626 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:49:28,626 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:49:28,626 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:49:28,635 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:49:28,635 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:49:28,642 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:49:28,642 WARN L254 TraceCheckSpWp]: Trace formula consists of 18 conjuncts, 13 conjunts are in the unsatisfiable core [2019-02-28 13:49:28,648 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:49:28,649 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:49:28,703 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 10 [2019-02-28 13:49:28,708 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:49:28,713 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:28,722 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:28,733 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:28,751 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:49:28,759 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 5 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-02-28 13:49:28,769 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 6 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-28 13:49:28,786 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 21 [2019-02-28 13:49:28,788 INFO L315 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-02-28 13:49:28,794 INFO L315 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:28,802 INFO L315 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:28,811 INFO L315 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:28,832 INFO L315 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 2 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-02-28 13:49:28,833 INFO L209 ElimStorePlain]: Needed 9 recursive calls to eliminate 3 variables, input treesize:49, output treesize:45 [2019-02-28 13:49:28,839 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:49:28,839 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_39|, ULTIMATE.start_main_p2, |v_#valid_11|]. (let ((.cse0 (store |v_#valid_11| ULTIMATE.start_main_p1 1))) (let ((.cse1 (store .cse0 ULTIMATE.start_main_p2 1))) (and (= 0 (select .cse0 ULTIMATE.start_main_p2)) (= (select (store .cse1 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4) 0) (= (select .cse1 ULTIMATE.start_main_p3) 0) (= (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|)))) [2019-02-28 13:49:28,840 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:49:28,941 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:49:28,947 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:49:28,980 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:49:28,981 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:55, output treesize:35 [2019-02-28 13:49:28,987 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:49:28,987 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 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_40| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_40| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= |#memory_int| (store |v_#memory_int_40| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= (select |v_#memory_int_40| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= .cse0 0))) [2019-02-28 13:49:28,987 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-02-28 13:49:29,104 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 3 disjoint index pairs (out of 6 index pairs), introduced 2 new quantified variables, introduced 5 case distinctions, treesize of input 33 treesize of output 35 [2019-02-28 13:49:29,110 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:49:29,133 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:49:29,133 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:45, output treesize:27 [2019-02-28 13:49:29,143 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:49:29,143 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_41|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_41| ULTIMATE.start_main_p3))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= |#memory_int| (store |v_#memory_int_41| ULTIMATE.start_main_p3 (+ .cse0 1))) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (+ (select |v_#memory_int_41| ULTIMATE.start_main_p4) 1)) (= 0 (select |v_#memory_int_41| ULTIMATE.start_main_p2)) (= .cse0 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_41| ULTIMATE.start_main_p1) 0))) [2019-02-28 13:49:29,143 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) [2019-02-28 13:49:29,184 INFO L273 TraceCheckUtils]: 0: Hoare triple {844#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {852#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:49:29,189 INFO L273 TraceCheckUtils]: 1: Hoare triple {852#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {856#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-28 13:49:29,191 INFO L273 TraceCheckUtils]: 2: Hoare triple {856#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {860#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)))} is VALID [2019-02-28 13:49:29,194 INFO L273 TraceCheckUtils]: 3: Hoare triple {860#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)))} assume !(#memory_int[main_p1] >= 0); {845#false} is VALID [2019-02-28 13:49:29,195 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:49:29,195 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:49:29,246 INFO L273 TraceCheckUtils]: 3: Hoare triple {864#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {845#false} is VALID [2019-02-28 13:49:29,247 INFO L273 TraceCheckUtils]: 2: Hoare triple {868#(<= 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]; {864#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:49:29,249 INFO L273 TraceCheckUtils]: 1: Hoare triple {872#(<= 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]; {868#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:49:29,250 INFO L273 TraceCheckUtils]: 0: Hoare triple {844#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {872#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:49:29,250 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:49:29,269 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:49:29,270 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-02-28 13:49:29,270 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:49:29,270 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-28 13:49:29,270 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:49:29,270 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-28 13:49:29,283 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:49:29,283 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-28 13:49:29,283 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-28 13:49:29,283 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-02-28 13:49:29,284 INFO L87 Difference]: Start difference. First operand 17 states and 41 transitions. Second operand 8 states. [2019-02-28 13:49:29,809 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:49:29,810 INFO L93 Difference]: Finished difference Result 46 states and 87 transitions. [2019-02-28 13:49:29,810 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-02-28 13:49:29,810 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-28 13:49:29,810 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:49:29,810 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:49:29,811 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 60 transitions. [2019-02-28 13:49:29,811 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:49:29,812 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 60 transitions. [2019-02-28 13:49:29,813 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 60 transitions. [2019-02-28 13:49:30,012 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 60 edges. 60 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:49:30,013 INFO L225 Difference]: With dead ends: 46 [2019-02-28 13:49:30,013 INFO L226 Difference]: Without dead ends: 40 [2019-02-28 13:49:30,014 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=51, Invalid=81, Unknown=0, NotChecked=0, Total=132 [2019-02-28 13:49:30,015 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 40 states. [2019-02-28 13:49:30,093 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 40 to 22. [2019-02-28 13:49:30,093 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:49:30,093 INFO L82 GeneralOperation]: Start isEquivalent. First operand 40 states. Second operand 22 states. [2019-02-28 13:49:30,093 INFO L74 IsIncluded]: Start isIncluded. First operand 40 states. Second operand 22 states. [2019-02-28 13:49:30,094 INFO L87 Difference]: Start difference. First operand 40 states. Second operand 22 states. [2019-02-28 13:49:30,096 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:49:30,096 INFO L93 Difference]: Finished difference Result 40 states and 79 transitions. [2019-02-28 13:49:30,096 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 79 transitions. [2019-02-28 13:49:30,097 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:49:30,097 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:49:30,097 INFO L74 IsIncluded]: Start isIncluded. First operand 22 states. Second operand 40 states. [2019-02-28 13:49:30,097 INFO L87 Difference]: Start difference. First operand 22 states. Second operand 40 states. [2019-02-28 13:49:30,099 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:49:30,099 INFO L93 Difference]: Finished difference Result 40 states and 79 transitions. [2019-02-28 13:49:30,099 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 79 transitions. [2019-02-28 13:49:30,099 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:49:30,100 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:49:30,100 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:49:30,100 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:49:30,100 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 22 states. [2019-02-28 13:49:30,101 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 22 states to 22 states and 58 transitions. [2019-02-28 13:49:30,101 INFO L78 Accepts]: Start accepts. Automaton has 22 states and 58 transitions. Word has length 4 [2019-02-28 13:49:30,101 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:49:30,102 INFO L480 AbstractCegarLoop]: Abstraction has 22 states and 58 transitions. [2019-02-28 13:49:30,102 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-28 13:49:30,102 INFO L276 IsEmpty]: Start isEmpty. Operand 22 states and 58 transitions. [2019-02-28 13:49:30,102 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-28 13:49:30,102 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:49:30,102 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-28 13:49:30,102 INFO L423 AbstractCegarLoop]: === Iteration 9 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:49:30,103 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:49:30,103 INFO L82 PathProgramCache]: Analyzing trace with hash 929802, now seen corresponding path program 1 times [2019-02-28 13:49:30,103 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:49:30,104 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:49:30,104 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:49:30,104 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:49:30,104 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:49:30,113 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:49:30,233 INFO L273 TraceCheckUtils]: 0: Hoare triple {1045#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1047#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-28 13:49:30,234 INFO L273 TraceCheckUtils]: 1: Hoare triple {1047#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1048#(and (or (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (or (<= 1 (select |#memory_int| ULTIMATE.start_main_p4)) (not (= (select |#memory_int| ULTIMATE.start_main_p4) (select |#memory_int| ULTIMATE.start_main_p1)))))} is VALID [2019-02-28 13:49:30,236 INFO L273 TraceCheckUtils]: 2: Hoare triple {1048#(and (or (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (or (<= 1 (select |#memory_int| ULTIMATE.start_main_p4)) (not (= (select |#memory_int| ULTIMATE.start_main_p4) (select |#memory_int| ULTIMATE.start_main_p1)))))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1049#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:49:30,236 INFO L273 TraceCheckUtils]: 3: Hoare triple {1049#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1046#false} is VALID [2019-02-28 13:49:30,237 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:49:30,237 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:49:30,237 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:49:30,237 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-28 13:49:30,238 INFO L207 CegarAbsIntRunner]: [0], [6], [16], [19] [2019-02-28 13:49:30,239 INFO L148 AbstractInterpreter]: Using domain ArrayDomain [2019-02-28 13:49:30,239 INFO L101 FixpointEngine]: Starting fixpoint engine with domain ArrayDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:49:42,563 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:49:42,564 INFO L272 AbstractInterpreter]: Visited 4 different actions 10 times. Merged at 2 different actions 2 times. Never widened. Found 6 fixpoints after 3 different actions. Largest state had 0 variables. [2019-02-28 13:49:42,564 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:49:42,564 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:49:42,564 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:49:42,565 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:49:42,574 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:49:42,574 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:49:42,594 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:49:42,594 WARN L254 TraceCheckSpWp]: Trace formula consists of 18 conjuncts, 13 conjunts are in the unsatisfiable core [2019-02-28 13:49:42,601 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:49:42,601 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:49:42,625 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:49:42,634 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:42,634 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-02-28 13:49:42,639 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:42,640 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:42,641 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:42,644 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-28 13:49:42,648 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:42,650 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:42,652 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:42,653 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:42,654 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:42,655 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:42,656 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 21 [2019-02-28 13:49:42,658 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:49:42,667 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:42,675 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:42,684 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:42,737 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 10 [2019-02-28 13:49:42,745 INFO L315 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-02-28 13:49:42,749 INFO L315 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:42,759 INFO L315 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:42,770 INFO L315 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:42,795 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:49:42,796 INFO L209 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:49, output treesize:45 [2019-02-28 13:49:42,802 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:49:42,802 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_44|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, |v_#valid_12|]. (let ((.cse1 (store |v_#valid_12| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (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|) (= 0 (select .cse0 ULTIMATE.start_main_p3)) (= 0 (select .cse1 ULTIMATE.start_main_p2)) (= 0 (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4))))) [2019-02-28 13:49:42,802 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:49:42,871 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:49:42,902 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:49:42,924 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:49:42,925 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:55, output treesize:33 [2019-02-28 13:49:42,930 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:49:42,930 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 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (store |v_#memory_int_45| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (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) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-02-28 13:49:42,930 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:49:42,995 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 3 disjoint index pairs (out of 6 index pairs), introduced 2 new quantified variables, introduced 5 case distinctions, treesize of input 31 treesize of output 33 [2019-02-28 13:49:42,999 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:49:43,015 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:49:43,015 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:43, output treesize:27 [2019-02-28 13:49:44,575 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:49:44,576 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 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= .cse0 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= |#memory_int| (store |v_#memory_int_46| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= (select |v_#memory_int_46| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_46| ULTIMATE.start_main_p2)) (= 1 (select |v_#memory_int_46| ULTIMATE.start_main_p1)))) [2019-02-28 13:49:44,576 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-02-28 13:49:44,626 INFO L273 TraceCheckUtils]: 0: Hoare triple {1045#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1053#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:49:44,628 INFO L273 TraceCheckUtils]: 1: Hoare triple {1053#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1057#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-28 13:49:44,631 INFO L273 TraceCheckUtils]: 2: Hoare triple {1057#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1061#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} is VALID [2019-02-28 13:49:44,632 INFO L273 TraceCheckUtils]: 3: Hoare triple {1061#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} assume !(#memory_int[main_p1] >= 0); {1046#false} is VALID [2019-02-28 13:49:44,633 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:49:44,633 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:49:44,660 INFO L273 TraceCheckUtils]: 3: Hoare triple {1049#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1046#false} is VALID [2019-02-28 13:49:44,661 INFO L273 TraceCheckUtils]: 2: Hoare triple {1068#(<= 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]; {1049#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:49:44,662 INFO L273 TraceCheckUtils]: 1: Hoare triple {1072#(<= 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]; {1068#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:49:44,664 INFO L273 TraceCheckUtils]: 0: Hoare triple {1045#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1072#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:49:44,665 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:49:44,685 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:49:44,685 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-02-28 13:49:44,685 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:49:44,686 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-28 13:49:44,686 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:49:44,686 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-28 13:49:44,698 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:49:44,698 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-28 13:49:44,698 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-28 13:49:44,698 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=37, Invalid=53, Unknown=0, NotChecked=0, Total=90 [2019-02-28 13:49:44,699 INFO L87 Difference]: Start difference. First operand 22 states and 58 transitions. Second operand 8 states. [2019-02-28 13:49:45,323 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:49:45,323 INFO L93 Difference]: Finished difference Result 52 states and 124 transitions. [2019-02-28 13:49:45,323 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-02-28 13:49:45,324 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-28 13:49:45,324 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:49:45,324 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:49:45,325 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 62 transitions. [2019-02-28 13:49:45,325 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:49:45,326 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 62 transitions. [2019-02-28 13:49:45,326 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 62 transitions. [2019-02-28 13:49:45,438 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 62 edges. 62 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:49:45,440 INFO L225 Difference]: With dead ends: 52 [2019-02-28 13:49:45,440 INFO L226 Difference]: Without dead ends: 49 [2019-02-28 13:49:45,441 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 9 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 8 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 22 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=37, Invalid=53, Unknown=0, NotChecked=0, Total=90 [2019-02-28 13:49:45,441 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 49 states. [2019-02-28 13:49:45,530 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 49 to 26. [2019-02-28 13:49:45,530 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:49:45,530 INFO L82 GeneralOperation]: Start isEquivalent. First operand 49 states. Second operand 26 states. [2019-02-28 13:49:45,531 INFO L74 IsIncluded]: Start isIncluded. First operand 49 states. Second operand 26 states. [2019-02-28 13:49:45,531 INFO L87 Difference]: Start difference. First operand 49 states. Second operand 26 states. [2019-02-28 13:49:45,534 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:49:45,534 INFO L93 Difference]: Finished difference Result 49 states and 117 transitions. [2019-02-28 13:49:45,534 INFO L276 IsEmpty]: Start isEmpty. Operand 49 states and 117 transitions. [2019-02-28 13:49:45,535 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:49:45,535 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:49:45,535 INFO L74 IsIncluded]: Start isIncluded. First operand 26 states. Second operand 49 states. [2019-02-28 13:49:45,535 INFO L87 Difference]: Start difference. First operand 26 states. Second operand 49 states. [2019-02-28 13:49:45,538 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:49:45,538 INFO L93 Difference]: Finished difference Result 49 states and 117 transitions. [2019-02-28 13:49:45,538 INFO L276 IsEmpty]: Start isEmpty. Operand 49 states and 117 transitions. [2019-02-28 13:49:45,538 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:49:45,538 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:49:45,539 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:49:45,539 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:49:45,539 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 26 states. [2019-02-28 13:49:45,540 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 78 transitions. [2019-02-28 13:49:45,541 INFO L78 Accepts]: Start accepts. Automaton has 26 states and 78 transitions. Word has length 4 [2019-02-28 13:49:45,541 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:49:45,541 INFO L480 AbstractCegarLoop]: Abstraction has 26 states and 78 transitions. [2019-02-28 13:49:45,541 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-28 13:49:45,541 INFO L276 IsEmpty]: Start isEmpty. Operand 26 states and 78 transitions. [2019-02-28 13:49:45,541 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-28 13:49:45,541 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:49:45,542 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-28 13:49:45,542 INFO L423 AbstractCegarLoop]: === Iteration 10 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:49:45,542 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:49:45,542 INFO L82 PathProgramCache]: Analyzing trace with hash 929928, now seen corresponding path program 1 times [2019-02-28 13:49:45,542 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:49:45,543 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:49:45,543 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:49:45,543 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:49:45,543 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:49:45,549 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:49:45,604 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;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1284#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-02-28 13:49:45,609 INFO L273 TraceCheckUtils]: 1: Hoare triple {1284#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1285#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:49:45,610 INFO L273 TraceCheckUtils]: 2: Hoare triple {1285#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {1285#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:49:45,611 INFO L273 TraceCheckUtils]: 3: Hoare triple {1285#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {1283#false} is VALID [2019-02-28 13:49:45,611 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:49:45,611 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:49:45,611 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:49:45,611 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-28 13:49:45,612 INFO L207 CegarAbsIntRunner]: [0], [6], [20], [21] [2019-02-28 13:49:45,613 INFO L148 AbstractInterpreter]: Using domain ArrayDomain [2019-02-28 13:49:45,613 INFO L101 FixpointEngine]: Starting fixpoint engine with domain ArrayDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:49:47,935 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:49:47,935 INFO L272 AbstractInterpreter]: Visited 4 different actions 6 times. Merged at 1 different actions 1 times. Never widened. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-28 13:49:47,936 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:49:47,936 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:49:47,936 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:49:47,936 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:49:47,948 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:49:47,948 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:49:47,951 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:49:47,952 INFO L256 TraceCheckSpWp]: Trace formula consists of 18 conjuncts, 7 conjunts are in the unsatisfiable core [2019-02-28 13:49:47,955 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:49:47,955 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:49:48,003 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2019-02-28 13:49:48,005 INFO L315 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-02-28 13:49:48,011 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:48,018 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:48,030 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:49:48,038 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-02-28 13:49:48,045 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-28 13:49:48,075 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 6 case distinctions, treesize of input 22 treesize of output 30 [2019-02-28 13:49:48,078 INFO L315 ElimStorePlain]: Start of recursive call 8: End of recursive call: and 1 xjuncts. [2019-02-28 13:49:48,087 INFO L315 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:48,095 INFO L315 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:48,103 INFO L315 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:48,117 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:49:48,118 INFO L209 ElimStorePlain]: Needed 8 recursive calls to eliminate 4 variables, input treesize:35, output treesize:33 [2019-02-28 13:49:48,123 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:49:48,123 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_49|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, |v_#valid_13|]. (let ((.cse0 (store |v_#valid_13| ULTIMATE.start_main_p1 1))) (and (= (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|) (= (select (store .cse0 ULTIMATE.start_main_p2 1) ULTIMATE.start_main_p3) 0) (= 0 (select .cse0 ULTIMATE.start_main_p2)))) [2019-02-28 13:49:48,123 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:49:48,170 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 21 [2019-02-28 13:49:48,173 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:49:48,183 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:49:48,184 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:38, output treesize:20 [2019-02-28 13:49:48,192 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:49:48,193 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_50|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_50| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_50| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (store |v_#memory_int_50| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_50| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 .cse0))) [2019-02-28 13:49:48,193 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-02-28 13:49:48,220 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;#memory_int := #memory_int[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 (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-02-28 13:49:48,222 INFO L273 TraceCheckUtils]: 1: Hoare triple {1289#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1293#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} is VALID [2019-02-28 13:49:48,223 INFO L273 TraceCheckUtils]: 2: Hoare triple {1293#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} assume #memory_int[main_p1] >= 0; {1293#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} is VALID [2019-02-28 13:49:48,224 INFO L273 TraceCheckUtils]: 3: Hoare triple {1293#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} assume !(#memory_int[main_p2] <= 0); {1283#false} is VALID [2019-02-28 13:49:48,224 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:49:48,224 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:49:48,245 INFO L273 TraceCheckUtils]: 3: Hoare triple {1300#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {1283#false} is VALID [2019-02-28 13:49:48,245 INFO L273 TraceCheckUtils]: 2: Hoare triple {1300#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {1300#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:49:48,246 INFO L273 TraceCheckUtils]: 1: Hoare triple {1307#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1300#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:49:48,248 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;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1307#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:49:48,248 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:49:48,268 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:49:48,268 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-02-28 13:49:48,268 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:49:48,269 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-02-28 13:49:48,269 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:49:48,269 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-02-28 13:49:48,294 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:49:48,294 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-02-28 13:49:48,294 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-02-28 13:49:48,294 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-02-28 13:49:48,295 INFO L87 Difference]: Start difference. First operand 26 states and 78 transitions. Second operand 6 states. [2019-02-28 13:49:48,608 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:49:48,609 INFO L93 Difference]: Finished difference Result 36 states and 91 transitions. [2019-02-28 13:49:48,609 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-02-28 13:49:48,609 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-02-28 13:49:48,609 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:49:48,610 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-28 13:49:48,610 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 34 transitions. [2019-02-28 13:49:48,610 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-28 13:49:48,611 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 34 transitions. [2019-02-28 13:49:48,611 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 34 transitions. [2019-02-28 13:49:48,676 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 34 edges. 34 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:49:48,677 INFO L225 Difference]: With dead ends: 36 [2019-02-28 13:49:48,677 INFO L226 Difference]: Without dead ends: 35 [2019-02-28 13:49:48,677 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 9 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-02-28 13:49:48,678 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 35 states. [2019-02-28 13:49:48,783 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 35 to 28. [2019-02-28 13:49:48,783 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:49:48,783 INFO L82 GeneralOperation]: Start isEquivalent. First operand 35 states. Second operand 28 states. [2019-02-28 13:49:48,784 INFO L74 IsIncluded]: Start isIncluded. First operand 35 states. Second operand 28 states. [2019-02-28 13:49:48,784 INFO L87 Difference]: Start difference. First operand 35 states. Second operand 28 states. [2019-02-28 13:49:48,785 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:49:48,785 INFO L93 Difference]: Finished difference Result 35 states and 89 transitions. [2019-02-28 13:49:48,786 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 89 transitions. [2019-02-28 13:49:48,786 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:49:48,786 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:49:48,786 INFO L74 IsIncluded]: Start isIncluded. First operand 28 states. Second operand 35 states. [2019-02-28 13:49:48,786 INFO L87 Difference]: Start difference. First operand 28 states. Second operand 35 states. [2019-02-28 13:49:48,788 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:49:48,788 INFO L93 Difference]: Finished difference Result 35 states and 89 transitions. [2019-02-28 13:49:48,788 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 89 transitions. [2019-02-28 13:49:48,788 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:49:48,788 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:49:48,789 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:49:48,789 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:49:48,789 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 28 states. [2019-02-28 13:49:48,790 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 28 states to 28 states and 84 transitions. [2019-02-28 13:49:48,790 INFO L78 Accepts]: Start accepts. Automaton has 28 states and 84 transitions. Word has length 4 [2019-02-28 13:49:48,790 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:49:48,790 INFO L480 AbstractCegarLoop]: Abstraction has 28 states and 84 transitions. [2019-02-28 13:49:48,790 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-02-28 13:49:48,791 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 84 transitions. [2019-02-28 13:49:48,791 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-28 13:49:48,791 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:49:48,791 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-28 13:49:48,791 INFO L423 AbstractCegarLoop]: === Iteration 11 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:49:48,792 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:49:48,792 INFO L82 PathProgramCache]: Analyzing trace with hash 933584, now seen corresponding path program 1 times [2019-02-28 13:49:48,792 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:49:48,793 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:49:48,793 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:49:48,793 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:49:48,793 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:49:48,799 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:49:48,898 INFO L273 TraceCheckUtils]: 0: Hoare triple {1474#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1476#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-02-28 13:49:48,899 INFO L273 TraceCheckUtils]: 1: Hoare triple {1476#(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]; {1477#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-28 13:49:48,900 INFO L273 TraceCheckUtils]: 2: Hoare triple {1477#(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]; {1478#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-28 13:49:48,901 INFO L273 TraceCheckUtils]: 3: Hoare triple {1478#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {1475#false} is VALID [2019-02-28 13:49:48,901 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:49:48,902 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:49:48,902 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:49:48,902 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-28 13:49:48,902 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [19] [2019-02-28 13:49:48,904 INFO L148 AbstractInterpreter]: Using domain ArrayDomain [2019-02-28 13:49:48,905 INFO L101 FixpointEngine]: Starting fixpoint engine with domain ArrayDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:49:52,925 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:49:52,925 INFO L272 AbstractInterpreter]: Visited 4 different actions 7 times. Merged at 1 different actions 1 times. Never widened. Found 4 fixpoints after 3 different actions. Largest state had 0 variables. [2019-02-28 13:49:52,926 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:49:52,926 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:49:52,926 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:49:52,926 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 10 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 10 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:49:52,935 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:49:52,936 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:49:52,954 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:49:52,954 WARN L254 TraceCheckSpWp]: Trace formula consists of 18 conjuncts, 13 conjunts are in the unsatisfiable core [2019-02-28 13:49:52,973 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:49:52,974 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:49:52,992 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:49:52,996 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:52,997 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-02-28 13:49:53,002 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:53,004 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:53,005 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:53,006 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-28 13:49:53,011 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:53,012 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:53,013 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:53,014 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:53,015 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:53,016 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:53,017 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 21 [2019-02-28 13:49:53,019 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:49:53,029 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:53,037 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:53,046 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:53,094 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 10 [2019-02-28 13:49:53,098 INFO L315 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-02-28 13:49:53,102 INFO L315 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:53,109 INFO L315 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:53,120 INFO L315 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:53,143 INFO L315 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 2 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-02-28 13:49:53,144 INFO L209 ElimStorePlain]: Needed 9 recursive calls to eliminate 3 variables, input treesize:49, output treesize:45 [2019-02-28 13:49:53,149 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:49:53,149 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_52|, ULTIMATE.start_malloc_ptr, |v_#valid_14|]. (let ((.cse1 (store |v_#valid_14| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= 0 (select .cse0 ULTIMATE.start_main_p3)) (= |#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_malloc_ptr 0)) (= (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_malloc_ptr) 0) (= (select .cse1 ULTIMATE.start_main_p2) 0)))) [2019-02-28 13:49:53,149 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_malloc_ptr]. (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr))) [2019-02-28 13:49:53,233 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:49:53,238 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:49:53,257 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:49:53,258 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:55, output treesize:35 [2019-02-28 13:49:53,262 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:49:53,262 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_53|, ULTIMATE.start_main_p2, ULTIMATE.start_malloc_ptr]. (let ((.cse0 (select |v_#memory_int_53| ULTIMATE.start_main_p2))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_53| ULTIMATE.start_malloc_ptr)) (= (store |v_#memory_int_53| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_53| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= .cse0 0) (= (select |v_#memory_int_53| ULTIMATE.start_main_p1) 0))) [2019-02-28 13:49:53,263 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr))) [2019-02-28 13:49:53,329 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 3 disjoint index pairs (out of 6 index pairs), introduced 2 new quantified variables, introduced 5 case distinctions, treesize of input 33 treesize of output 31 [2019-02-28 13:49:53,333 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:49:53,349 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:49:53,349 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:45, output treesize:27 [2019-02-28 13:49:53,366 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:49:53,367 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_54|, ULTIMATE.start_main_p3, ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_54| ULTIMATE.start_main_p3))) (and (= (select |v_#memory_int_54| ULTIMATE.start_malloc_ptr) 0) (= 0 (+ (select |v_#memory_int_54| ULTIMATE.start_main_p2) 1)) (= (select |v_#memory_int_54| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= (store |v_#memory_int_54| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 .cse0))) [2019-02-28 13:49:53,367 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr))) [2019-02-28 13:49:53,390 INFO L273 TraceCheckUtils]: 0: Hoare triple {1474#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1482#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-28 13:49:53,392 INFO L273 TraceCheckUtils]: 1: Hoare triple {1482#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1486#(and (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-28 13:49:53,394 INFO L273 TraceCheckUtils]: 2: Hoare triple {1486#(and (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {1490#(and (exists ((ULTIMATE.start_main_p2 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)))} is VALID [2019-02-28 13:49:53,395 INFO L273 TraceCheckUtils]: 3: Hoare triple {1490#(and (exists ((ULTIMATE.start_main_p2 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)))} assume !(#memory_int[main_p1] >= 0); {1475#false} is VALID [2019-02-28 13:49:53,396 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:49:53,396 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:49:53,433 INFO L273 TraceCheckUtils]: 3: Hoare triple {1494#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1475#false} is VALID [2019-02-28 13:49:53,435 INFO L273 TraceCheckUtils]: 2: Hoare triple {1498#(<= 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]; {1494#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:49:53,436 INFO L273 TraceCheckUtils]: 1: Hoare triple {1502#(<= 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]; {1498#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:49:53,438 INFO L273 TraceCheckUtils]: 0: Hoare triple {1474#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1502#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:49:53,439 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:49:53,461 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:49:53,462 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-02-28 13:49:53,462 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:49:53,462 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-28 13:49:53,462 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:49:53,462 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-28 13:49:53,473 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:49:53,474 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-28 13:49:53,474 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-28 13:49:53,474 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-02-28 13:49:53,474 INFO L87 Difference]: Start difference. First operand 28 states and 84 transitions. Second operand 8 states. [2019-02-28 13:49:54,224 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:49:54,224 INFO L93 Difference]: Finished difference Result 52 states and 123 transitions. [2019-02-28 13:49:54,224 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-02-28 13:49:54,224 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-28 13:49:54,224 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:49:54,225 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:49:54,226 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 47 transitions. [2019-02-28 13:49:54,226 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:49:54,227 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 47 transitions. [2019-02-28 13:49:54,227 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 47 transitions. [2019-02-28 13:49:54,336 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 47 edges. 47 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:49:54,337 INFO L225 Difference]: With dead ends: 52 [2019-02-28 13:49:54,338 INFO L226 Difference]: Without dead ends: 50 [2019-02-28 13:49:54,338 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-02-28 13:49:54,338 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 50 states. [2019-02-28 13:49:54,476 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 50 to 31. [2019-02-28 13:49:54,476 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:49:54,476 INFO L82 GeneralOperation]: Start isEquivalent. First operand 50 states. Second operand 31 states. [2019-02-28 13:49:54,476 INFO L74 IsIncluded]: Start isIncluded. First operand 50 states. Second operand 31 states. [2019-02-28 13:49:54,476 INFO L87 Difference]: Start difference. First operand 50 states. Second operand 31 states. [2019-02-28 13:49:54,478 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:49:54,478 INFO L93 Difference]: Finished difference Result 50 states and 119 transitions. [2019-02-28 13:49:54,478 INFO L276 IsEmpty]: Start isEmpty. Operand 50 states and 119 transitions. [2019-02-28 13:49:54,478 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:49:54,479 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:49:54,479 INFO L74 IsIncluded]: Start isIncluded. First operand 31 states. Second operand 50 states. [2019-02-28 13:49:54,479 INFO L87 Difference]: Start difference. First operand 31 states. Second operand 50 states. [2019-02-28 13:49:54,480 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:49:54,481 INFO L93 Difference]: Finished difference Result 50 states and 119 transitions. [2019-02-28 13:49:54,481 INFO L276 IsEmpty]: Start isEmpty. Operand 50 states and 119 transitions. [2019-02-28 13:49:54,481 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:49:54,481 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:49:54,481 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:49:54,481 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:49:54,482 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 31 states. [2019-02-28 13:49:54,483 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 31 states to 31 states and 99 transitions. [2019-02-28 13:49:54,483 INFO L78 Accepts]: Start accepts. Automaton has 31 states and 99 transitions. Word has length 4 [2019-02-28 13:49:54,483 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:49:54,483 INFO L480 AbstractCegarLoop]: Abstraction has 31 states and 99 transitions. [2019-02-28 13:49:54,483 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-28 13:49:54,483 INFO L276 IsEmpty]: Start isEmpty. Operand 31 states and 99 transitions. [2019-02-28 13:49:54,484 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-28 13:49:54,484 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:49:54,484 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-28 13:49:54,484 INFO L423 AbstractCegarLoop]: === Iteration 12 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:49:54,484 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:49:54,484 INFO L82 PathProgramCache]: Analyzing trace with hash 937616, now seen corresponding path program 1 times [2019-02-28 13:49:54,484 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:49:54,485 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:49:54,485 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:49:54,485 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:49:54,486 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:49:54,490 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:49:54,574 INFO L273 TraceCheckUtils]: 0: Hoare triple {1727#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1729#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-02-28 13:49:54,575 INFO L273 TraceCheckUtils]: 1: Hoare triple {1729#(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]; {1730#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:49:54,576 INFO L273 TraceCheckUtils]: 2: Hoare triple {1730#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {1730#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:49:54,580 INFO L273 TraceCheckUtils]: 3: Hoare triple {1730#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {1728#false} is VALID [2019-02-28 13:49:54,580 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:49:54,580 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:49:54,581 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:49:54,581 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-28 13:49:54,581 INFO L207 CegarAbsIntRunner]: [0], [14], [20], [21] [2019-02-28 13:49:54,583 INFO L148 AbstractInterpreter]: Using domain ArrayDomain [2019-02-28 13:49:54,583 INFO L101 FixpointEngine]: Starting fixpoint engine with domain ArrayDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:49:56,931 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:49:56,931 INFO L272 AbstractInterpreter]: Visited 4 different actions 6 times. Merged at 1 different actions 1 times. Never widened. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-28 13:49:56,931 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:49:56,932 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:49:56,932 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:49:56,932 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 11 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 11 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:49:56,940 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:49:56,940 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:49:56,945 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:49:56,945 WARN L254 TraceCheckSpWp]: Trace formula consists of 18 conjuncts, 10 conjunts are in the unsatisfiable core [2019-02-28 13:49:56,951 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:49:56,951 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:49:56,971 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:49:56,989 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 2 new quantified variables, introduced 2 case distinctions, treesize of input 18 treesize of output 23 [2019-02-28 13:49:56,994 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:56,995 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:56,997 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 1 case distinctions, treesize of input 20 treesize of output 22 [2019-02-28 13:49:57,002 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:57,005 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:57,006 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:57,007 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:57,009 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:49:57,011 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 5 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 1 case distinctions, treesize of input 22 treesize of output 21 [2019-02-28 13:49:57,013 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:49:57,022 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:57,031 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:57,044 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:57,079 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 5 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2019-02-28 13:49:57,081 INFO L315 ElimStorePlain]: Start of recursive call 8: End of recursive call: and 1 xjuncts. [2019-02-28 13:49:57,087 INFO L315 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:57,097 INFO L315 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:49:57,119 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:49:57,119 INFO L209 ElimStorePlain]: Needed 8 recursive calls to eliminate 4 variables, input treesize:41, output treesize:41 [2019-02-28 13:49:57,124 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:49:57,124 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_57|, ULTIMATE.start_main_p1, ULTIMATE.start_malloc_ptr, |v_#valid_15|]. (let ((.cse0 (store (store |v_#valid_15| ULTIMATE.start_main_p1 1) ULTIMATE.start_main_p2 1))) (and (= (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_malloc_ptr 0) |#memory_int|) (= (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_malloc_ptr) 0) (= 0 (select .cse0 ULTIMATE.start_main_p3)))) [2019-02-28 13:49:57,124 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_malloc_ptr]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr))) [2019-02-28 13:49:57,178 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 5 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 1 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:49:57,181 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:49:57,200 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:49:57,201 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:51, output treesize:29 [2019-02-28 13:53:18,932 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:53:18,932 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_58|, ULTIMATE.start_main_p3, ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_58| ULTIMATE.start_main_p3))) (and (= .cse0 0) (= (store |v_#memory_int_58| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= (select |v_#memory_int_58| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_58| ULTIMATE.start_malloc_ptr) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= (select |v_#memory_int_58| ULTIMATE.start_main_p2) 0))) [2019-02-28 13:53:18,932 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr))) [2019-02-28 13:53:19,348 INFO L273 TraceCheckUtils]: 0: Hoare triple {1727#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1734#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-28 13:53:19,353 INFO L273 TraceCheckUtils]: 1: Hoare triple {1734#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {1738#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-02-28 13:53:19,354 INFO L273 TraceCheckUtils]: 2: Hoare triple {1738#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {1738#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-02-28 13:53:19,354 INFO L273 TraceCheckUtils]: 3: Hoare triple {1738#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {1728#false} is VALID [2019-02-28 13:53:19,355 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:53:19,355 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:53:19,384 INFO L273 TraceCheckUtils]: 3: Hoare triple {1745#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {1728#false} is VALID [2019-02-28 13:53:19,384 INFO L273 TraceCheckUtils]: 2: Hoare triple {1745#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {1745#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:53:19,386 INFO L273 TraceCheckUtils]: 1: Hoare triple {1752#(<= (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]; {1745#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:53:19,387 INFO L273 TraceCheckUtils]: 0: Hoare triple {1727#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1752#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:53:19,387 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:53:19,407 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:53:19,408 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-02-28 13:53:19,408 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:53:19,408 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-02-28 13:53:19,408 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:53:19,408 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-02-28 13:53:19,424 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:53:19,424 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-02-28 13:53:19,424 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-02-28 13:53:19,425 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-02-28 13:53:19,425 INFO L87 Difference]: Start difference. First operand 31 states and 99 transitions. Second operand 6 states. [2019-02-28 13:53:19,841 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:53:19,841 INFO L93 Difference]: Finished difference Result 39 states and 105 transitions. [2019-02-28 13:53:19,841 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-02-28 13:53:19,842 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-02-28 13:53:19,842 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:53:19,842 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-28 13:53:19,843 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 34 transitions. [2019-02-28 13:53:19,843 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-28 13:53:19,843 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 34 transitions. [2019-02-28 13:53:19,843 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 34 transitions. [2019-02-28 13:53:19,903 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 34 edges. 34 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:53:19,904 INFO L225 Difference]: With dead ends: 39 [2019-02-28 13:53:19,904 INFO L226 Difference]: Without dead ends: 38 [2019-02-28 13:53:19,905 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 9 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-02-28 13:53:19,905 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 38 states. [2019-02-28 13:53:20,078 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 38 to 30. [2019-02-28 13:53:20,079 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:53:20,079 INFO L82 GeneralOperation]: Start isEquivalent. First operand 38 states. Second operand 30 states. [2019-02-28 13:53:20,079 INFO L74 IsIncluded]: Start isIncluded. First operand 38 states. Second operand 30 states. [2019-02-28 13:53:20,079 INFO L87 Difference]: Start difference. First operand 38 states. Second operand 30 states. [2019-02-28 13:53:20,081 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:53:20,081 INFO L93 Difference]: Finished difference Result 38 states and 103 transitions. [2019-02-28 13:53:20,081 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 103 transitions. [2019-02-28 13:53:20,081 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:53:20,081 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:53:20,082 INFO L74 IsIncluded]: Start isIncluded. First operand 30 states. Second operand 38 states. [2019-02-28 13:53:20,082 INFO L87 Difference]: Start difference. First operand 30 states. Second operand 38 states. [2019-02-28 13:53:20,083 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:53:20,083 INFO L93 Difference]: Finished difference Result 38 states and 103 transitions. [2019-02-28 13:53:20,083 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 103 transitions. [2019-02-28 13:53:20,084 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:53:20,084 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:53:20,084 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:53:20,084 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:53:20,084 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 30 states. [2019-02-28 13:53:20,085 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 30 states to 30 states and 97 transitions. [2019-02-28 13:53:20,085 INFO L78 Accepts]: Start accepts. Automaton has 30 states and 97 transitions. Word has length 4 [2019-02-28 13:53:20,086 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:53:20,086 INFO L480 AbstractCegarLoop]: Abstraction has 30 states and 97 transitions. [2019-02-28 13:53:20,086 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-02-28 13:53:20,086 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 97 transitions. [2019-02-28 13:53:20,086 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-02-28 13:53:20,086 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:53:20,086 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1] [2019-02-28 13:53:20,087 INFO L423 AbstractCegarLoop]: === Iteration 13 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:53:20,087 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:53:20,087 INFO L82 PathProgramCache]: Analyzing trace with hash 29121388, now seen corresponding path program 2 times [2019-02-28 13:53:20,087 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:53:20,088 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:53:20,088 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:53:20,088 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:53:20,088 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:53:20,094 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:53:20,174 INFO L273 TraceCheckUtils]: 0: Hoare triple {1936#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1938#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:53:20,176 INFO L273 TraceCheckUtils]: 1: Hoare triple {1938#(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]; {1938#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:53:20,177 INFO L273 TraceCheckUtils]: 2: Hoare triple {1938#(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]; {1939#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-28 13:53:20,178 INFO L273 TraceCheckUtils]: 3: Hoare triple {1939#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1940#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:53:20,179 INFO L273 TraceCheckUtils]: 4: Hoare triple {1940#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1937#false} is VALID [2019-02-28 13:53:20,179 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-02-28 13:53:20,179 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:53:20,180 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:53:20,180 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-02-28 13:53:20,180 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-02-28 13:53:20,180 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:53:20,180 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 12 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 12 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:53:20,191 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-02-28 13:53:20,191 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-02-28 13:53:20,198 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-02-28 13:53:20,198 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-02-28 13:53:20,199 WARN L254 TraceCheckSpWp]: Trace formula consists of 19 conjuncts, 14 conjunts are in the unsatisfiable core [2019-02-28 13:53:20,205 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:53:20,205 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:53:20,277 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 10 [2019-02-28 13:53:20,281 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:53:20,289 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:53:20,300 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:53:20,313 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:53:20,333 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:53:20,342 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 5 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-02-28 13:53:20,354 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 6 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-28 13:53:20,366 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 21 [2019-02-28 13:53:20,368 INFO L315 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-02-28 13:53:20,377 INFO L315 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:53:20,387 INFO L315 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:53:20,396 INFO L315 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:53:20,424 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:53:20,424 INFO L209 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:49, output treesize:45 [2019-02-28 13:53:20,430 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:53:20,430 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_60|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, |v_#valid_16|]. (let ((.cse1 (store |v_#valid_16| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= |#memory_int| (store (store (store (store |v_#memory_int_60| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (= (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4) 0) (= (select .cse0 ULTIMATE.start_main_p3) 0) (= 0 (select .cse1 ULTIMATE.start_main_p2))))) [2019-02-28 13:53:20,430 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:53:20,500 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:53:20,503 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:53:20,527 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:53:20,528 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:55, output treesize:35 [2019-02-28 13:53:20,534 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:53:20,534 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_61|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_61| ULTIMATE.start_main_p4))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_61| ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_61| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= |#memory_int| (store |v_#memory_int_61| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 .cse0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_61| ULTIMATE.start_main_p2) 0))) [2019-02-28 13:53:20,534 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-02-28 13:53:20,618 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 3 disjoint index pairs (out of 6 index pairs), introduced 4 new quantified variables, introduced 9 case distinctions, treesize of input 33 treesize of output 37 [2019-02-28 13:53:20,626 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:53:20,647 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:53:20,647 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:45, output treesize:35