java -ea -Xmx8000000000 -jar /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -data @noDefault -ultimatedata /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data -tc ../../../trunk/examples/toolchains/AutomizerC.xml -s ../../../trunk/examples/settings/default/automizer/svcomp-Reach-32bit-Automizer_Default-Const.epf -i ../../../trunk/examples/svcomp/loops/invert_string_false-unreach-call_true-termination.i -------------------------------------------------------------------------------- This is Ultimate 0.1.23-370d6ab [2018-11-14 19:17:07,245 INFO L170 SettingsManager]: Resetting all preferences to default values... [2018-11-14 19:17:07,249 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2018-11-14 19:17:07,268 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2018-11-14 19:17:07,269 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2018-11-14 19:17:07,270 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2018-11-14 19:17:07,271 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2018-11-14 19:17:07,273 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2018-11-14 19:17:07,277 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2018-11-14 19:17:07,278 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2018-11-14 19:17:07,279 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2018-11-14 19:17:07,280 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2018-11-14 19:17:07,281 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2018-11-14 19:17:07,285 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2018-11-14 19:17:07,286 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2018-11-14 19:17:07,287 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2018-11-14 19:17:07,290 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2018-11-14 19:17:07,294 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2018-11-14 19:17:07,296 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2018-11-14 19:17:07,298 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2018-11-14 19:17:07,299 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2018-11-14 19:17:07,300 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2018-11-14 19:17:07,302 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2018-11-14 19:17:07,303 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2018-11-14 19:17:07,303 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2018-11-14 19:17:07,304 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2018-11-14 19:17:07,305 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2018-11-14 19:17:07,305 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2018-11-14 19:17:07,306 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2018-11-14 19:17:07,307 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2018-11-14 19:17:07,308 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2018-11-14 19:17:07,308 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2018-11-14 19:17:07,308 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2018-11-14 19:17:07,309 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2018-11-14 19:17:07,309 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2018-11-14 19:17:07,310 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2018-11-14 19:17:07,310 INFO L98 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/default/automizer/svcomp-Reach-32bit-Automizer_Default-Const.epf [2018-11-14 19:17:07,325 INFO L110 SettingsManager]: Loading preferences was successful [2018-11-14 19:17:07,326 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2018-11-14 19:17:07,326 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2018-11-14 19:17:07,327 INFO L133 SettingsManager]: * to procedures, called more than once=true [2018-11-14 19:17:07,327 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2018-11-14 19:17:07,327 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2018-11-14 19:17:07,328 INFO L133 SettingsManager]: * Use SBE=true [2018-11-14 19:17:07,328 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2018-11-14 19:17:07,328 INFO L133 SettingsManager]: * sizeof long=4 [2018-11-14 19:17:07,328 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2018-11-14 19:17:07,328 INFO L133 SettingsManager]: * sizeof POINTER=4 [2018-11-14 19:17:07,329 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2018-11-14 19:17:07,329 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2018-11-14 19:17:07,329 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2018-11-14 19:17:07,329 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2018-11-14 19:17:07,329 INFO L133 SettingsManager]: * sizeof long double=12 [2018-11-14 19:17:07,329 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2018-11-14 19:17:07,330 INFO L133 SettingsManager]: * Use constant arrays=true [2018-11-14 19:17:07,330 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2018-11-14 19:17:07,330 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2018-11-14 19:17:07,330 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2018-11-14 19:17:07,330 INFO L133 SettingsManager]: * To the following directory=./dump/ [2018-11-14 19:17:07,331 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2018-11-14 19:17:07,331 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-14 19:17:07,331 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2018-11-14 19:17:07,331 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2018-11-14 19:17:07,331 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2018-11-14 19:17:07,332 INFO L133 SettingsManager]: * Trace refinement strategy=CAMEL [2018-11-14 19:17:07,332 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2018-11-14 19:17:07,332 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2018-11-14 19:17:07,332 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2018-11-14 19:17:07,381 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2018-11-14 19:17:07,395 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2018-11-14 19:17:07,400 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2018-11-14 19:17:07,402 INFO L271 PluginConnector]: Initializing CDTParser... [2018-11-14 19:17:07,402 INFO L276 PluginConnector]: CDTParser initialized [2018-11-14 19:17:07,403 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/svcomp/loops/invert_string_false-unreach-call_true-termination.i [2018-11-14 19:17:07,474 INFO L218 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/31c6fde99/58ea952eefca4d5caa0e91b2d7ae60c8/FLAG8a9c53579 [2018-11-14 19:17:07,956 INFO L298 CDTParser]: Found 1 translation units. [2018-11-14 19:17:07,956 INFO L158 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/loops/invert_string_false-unreach-call_true-termination.i [2018-11-14 19:17:07,962 INFO L346 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/31c6fde99/58ea952eefca4d5caa0e91b2d7ae60c8/FLAG8a9c53579 [2018-11-14 19:17:07,977 INFO L354 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/31c6fde99/58ea952eefca4d5caa0e91b2d7ae60c8 [2018-11-14 19:17:07,988 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2018-11-14 19:17:07,990 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2018-11-14 19:17:07,991 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2018-11-14 19:17:07,991 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2018-11-14 19:17:07,995 INFO L276 PluginConnector]: CACSL2BoogieTranslator initialized [2018-11-14 19:17:07,997 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 14.11 07:17:07" (1/1) ... [2018-11-14 19:17:07,999 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@27c7a8dd and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 07:17:07, skipping insertion in model container [2018-11-14 19:17:08,000 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 14.11 07:17:07" (1/1) ... [2018-11-14 19:17:08,009 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2018-11-14 19:17:08,032 INFO L176 MainTranslator]: Built tables and reachable declarations [2018-11-14 19:17:08,294 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-14 19:17:08,299 INFO L191 MainTranslator]: Completed pre-run [2018-11-14 19:17:08,341 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-14 19:17:08,367 INFO L195 MainTranslator]: Completed translation [2018-11-14 19:17:08,367 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 07:17:08 WrapperNode [2018-11-14 19:17:08,367 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2018-11-14 19:17:08,368 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2018-11-14 19:17:08,368 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2018-11-14 19:17:08,369 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2018-11-14 19:17:08,384 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 07:17:08" (1/1) ... [2018-11-14 19:17:08,384 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 07:17:08" (1/1) ... [2018-11-14 19:17:08,396 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 07:17:08" (1/1) ... [2018-11-14 19:17:08,396 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 07:17:08" (1/1) ... [2018-11-14 19:17:08,408 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 07:17:08" (1/1) ... [2018-11-14 19:17:08,415 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 07:17:08" (1/1) ... [2018-11-14 19:17:08,417 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 07:17:08" (1/1) ... [2018-11-14 19:17:08,419 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2018-11-14 19:17:08,420 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2018-11-14 19:17:08,420 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2018-11-14 19:17:08,420 INFO L276 PluginConnector]: RCFGBuilder initialized [2018-11-14 19:17:08,421 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 07:17:08" (1/1) ... No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-14 19:17:08,564 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2018-11-14 19:17:08,564 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2018-11-14 19:17:08,564 INFO L138 BoogieDeclarations]: Found implementation of procedure __VERIFIER_assert [2018-11-14 19:17:08,564 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2018-11-14 19:17:08,564 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_error [2018-11-14 19:17:08,565 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_assert [2018-11-14 19:17:08,565 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_nondet_char [2018-11-14 19:17:08,565 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_nondet_uint [2018-11-14 19:17:08,565 INFO L130 BoogieDeclarations]: Found specification of procedure main [2018-11-14 19:17:08,565 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.alloc [2018-11-14 19:17:08,568 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2018-11-14 19:17:08,568 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2018-11-14 19:17:08,568 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2018-11-14 19:17:08,568 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2018-11-14 19:17:08,569 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2018-11-14 19:17:08,570 INFO L130 BoogieDeclarations]: Found specification of procedure write~unchecked~int [2018-11-14 19:17:09,141 INFO L278 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2018-11-14 19:17:09,142 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 14.11 07:17:09 BoogieIcfgContainer [2018-11-14 19:17:09,142 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2018-11-14 19:17:09,143 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2018-11-14 19:17:09,143 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2018-11-14 19:17:09,146 INFO L276 PluginConnector]: TraceAbstraction initialized [2018-11-14 19:17:09,147 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 14.11 07:17:07" (1/3) ... [2018-11-14 19:17:09,148 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@678bc640 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 14.11 07:17:09, skipping insertion in model container [2018-11-14 19:17:09,148 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 07:17:08" (2/3) ... [2018-11-14 19:17:09,148 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@678bc640 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 14.11 07:17:09, skipping insertion in model container [2018-11-14 19:17:09,148 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 14.11 07:17:09" (3/3) ... [2018-11-14 19:17:09,150 INFO L112 eAbstractionObserver]: Analyzing ICFG invert_string_false-unreach-call_true-termination.i [2018-11-14 19:17:09,160 INFO L136 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2018-11-14 19:17:09,168 INFO L148 ceAbstractionStarter]: Appying trace abstraction to program that has 1 error locations. [2018-11-14 19:17:09,186 INFO L257 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2018-11-14 19:17:09,225 INFO L133 ementStrategyFactory]: Using default assertion order modulation [2018-11-14 19:17:09,226 INFO L382 AbstractCegarLoop]: Interprodecural is true [2018-11-14 19:17:09,227 INFO L383 AbstractCegarLoop]: Hoare is true [2018-11-14 19:17:09,227 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2018-11-14 19:17:09,227 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2018-11-14 19:17:09,227 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2018-11-14 19:17:09,227 INFO L387 AbstractCegarLoop]: Difference is false [2018-11-14 19:17:09,228 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2018-11-14 19:17:09,228 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2018-11-14 19:17:09,247 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states. [2018-11-14 19:17:09,253 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 17 [2018-11-14 19:17:09,253 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:17:09,254 INFO L375 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 19:17:09,257 INFO L423 AbstractCegarLoop]: === Iteration 1 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:17:09,263 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:17:09,263 INFO L82 PathProgramCache]: Analyzing trace with hash -1989464865, now seen corresponding path program 1 times [2018-11-14 19:17:09,265 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:17:09,266 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:17:09,313 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:17:09,313 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 19:17:09,314 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:17:09,362 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:17:09,466 INFO L256 TraceCheckUtils]: 0: Hoare triple {33#true} call ULTIMATE.init(); {33#true} is VALID [2018-11-14 19:17:09,470 INFO L273 TraceCheckUtils]: 1: Hoare triple {33#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {33#true} is VALID [2018-11-14 19:17:09,471 INFO L273 TraceCheckUtils]: 2: Hoare triple {33#true} assume true; {33#true} is VALID [2018-11-14 19:17:09,471 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {33#true} {33#true} #66#return; {33#true} is VALID [2018-11-14 19:17:09,472 INFO L256 TraceCheckUtils]: 4: Hoare triple {33#true} call #t~ret10 := main(); {33#true} is VALID [2018-11-14 19:17:09,472 INFO L273 TraceCheckUtils]: 5: Hoare triple {33#true} ~MAX~0 := (if #t~nondet0 % 4294967296 % 4294967296 <= 2147483647 then #t~nondet0 % 4294967296 % 4294967296 else #t~nondet0 % 4294967296 % 4294967296 - 4294967296);havoc #t~nondet0;call ~#str1~0.base, ~#str1~0.offset := #Ultimate.alloc(~MAX~0 * 1);call ~#str2~0.base, ~#str2~0.offset := #Ultimate.alloc(~MAX~0 * 1);havoc ~cont~0;havoc ~i~0;havoc ~j~0;~cont~0 := 0;~i~0 := 0; {33#true} is VALID [2018-11-14 19:17:09,476 INFO L273 TraceCheckUtils]: 6: Hoare triple {33#true} assume !true; {34#false} is VALID [2018-11-14 19:17:09,476 INFO L273 TraceCheckUtils]: 7: Hoare triple {34#false} call write~int(0, ~#str1~0.base, ~#str1~0.offset + (~MAX~0 - 1) * 1, 1);~j~0 := 0;~i~0 := ~MAX~0 - 1; {34#false} is VALID [2018-11-14 19:17:09,477 INFO L273 TraceCheckUtils]: 8: Hoare triple {34#false} assume !true; {34#false} is VALID [2018-11-14 19:17:09,477 INFO L273 TraceCheckUtils]: 9: Hoare triple {34#false} ~j~0 := ~MAX~0 - 1;~i~0 := 0; {34#false} is VALID [2018-11-14 19:17:09,477 INFO L273 TraceCheckUtils]: 10: Hoare triple {34#false} assume true; {34#false} is VALID [2018-11-14 19:17:09,477 INFO L273 TraceCheckUtils]: 11: Hoare triple {34#false} assume !!(~i~0 < ~MAX~0);call #t~mem7 := read~int(~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);call #t~mem8 := read~int(~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1); {34#false} is VALID [2018-11-14 19:17:09,478 INFO L256 TraceCheckUtils]: 12: Hoare triple {34#false} call __VERIFIER_assert((if #t~mem7 == #t~mem8 then 1 else 0)); {34#false} is VALID [2018-11-14 19:17:09,478 INFO L273 TraceCheckUtils]: 13: Hoare triple {34#false} ~cond := #in~cond; {34#false} is VALID [2018-11-14 19:17:09,480 INFO L273 TraceCheckUtils]: 14: Hoare triple {34#false} assume ~cond == 0; {34#false} is VALID [2018-11-14 19:17:09,480 INFO L273 TraceCheckUtils]: 15: Hoare triple {34#false} assume !false; {34#false} is VALID [2018-11-14 19:17:09,483 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 19:17:09,485 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-14 19:17:09,485 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2018-11-14 19:17:09,490 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 16 [2018-11-14 19:17:09,494 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 19:17:09,498 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 2 states. [2018-11-14 19:17:09,668 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 16 edges. 16 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:17:09,669 INFO L459 AbstractCegarLoop]: Interpolant automaton has 2 states [2018-11-14 19:17:09,676 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 2 interpolants. [2018-11-14 19:17:09,677 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2018-11-14 19:17:09,680 INFO L87 Difference]: Start difference. First operand 30 states. Second operand 2 states. [2018-11-14 19:17:09,848 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:17:09,849 INFO L93 Difference]: Finished difference Result 51 states and 62 transitions. [2018-11-14 19:17:09,849 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 2 states. [2018-11-14 19:17:09,849 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 16 [2018-11-14 19:17:09,850 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 19:17:09,851 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 2 states. [2018-11-14 19:17:09,863 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 62 transitions. [2018-11-14 19:17:09,863 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 2 states. [2018-11-14 19:17:09,869 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 62 transitions. [2018-11-14 19:17:09,869 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 2 states and 62 transitions. [2018-11-14 19:17:10,336 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 62 edges. 62 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:17:10,348 INFO L225 Difference]: With dead ends: 51 [2018-11-14 19:17:10,349 INFO L226 Difference]: Without dead ends: 25 [2018-11-14 19:17:10,353 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 2 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 0 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2018-11-14 19:17:10,371 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 25 states. [2018-11-14 19:17:10,402 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 25 to 25. [2018-11-14 19:17:10,403 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 19:17:10,403 INFO L82 GeneralOperation]: Start isEquivalent. First operand 25 states. Second operand 25 states. [2018-11-14 19:17:10,404 INFO L74 IsIncluded]: Start isIncluded. First operand 25 states. Second operand 25 states. [2018-11-14 19:17:10,404 INFO L87 Difference]: Start difference. First operand 25 states. Second operand 25 states. [2018-11-14 19:17:10,408 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:17:10,408 INFO L93 Difference]: Finished difference Result 25 states and 27 transitions. [2018-11-14 19:17:10,408 INFO L276 IsEmpty]: Start isEmpty. Operand 25 states and 27 transitions. [2018-11-14 19:17:10,409 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:17:10,409 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:17:10,409 INFO L74 IsIncluded]: Start isIncluded. First operand 25 states. Second operand 25 states. [2018-11-14 19:17:10,409 INFO L87 Difference]: Start difference. First operand 25 states. Second operand 25 states. [2018-11-14 19:17:10,413 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:17:10,417 INFO L93 Difference]: Finished difference Result 25 states and 27 transitions. [2018-11-14 19:17:10,417 INFO L276 IsEmpty]: Start isEmpty. Operand 25 states and 27 transitions. [2018-11-14 19:17:10,418 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:17:10,418 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:17:10,418 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 19:17:10,418 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 19:17:10,419 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 25 states. [2018-11-14 19:17:10,421 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 25 states to 25 states and 27 transitions. [2018-11-14 19:17:10,423 INFO L78 Accepts]: Start accepts. Automaton has 25 states and 27 transitions. Word has length 16 [2018-11-14 19:17:10,424 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 19:17:10,424 INFO L480 AbstractCegarLoop]: Abstraction has 25 states and 27 transitions. [2018-11-14 19:17:10,424 INFO L481 AbstractCegarLoop]: Interpolant automaton has 2 states. [2018-11-14 19:17:10,424 INFO L276 IsEmpty]: Start isEmpty. Operand 25 states and 27 transitions. [2018-11-14 19:17:10,425 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 19 [2018-11-14 19:17:10,425 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:17:10,425 INFO L375 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 19:17:10,426 INFO L423 AbstractCegarLoop]: === Iteration 2 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:17:10,426 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:17:10,426 INFO L82 PathProgramCache]: Analyzing trace with hash 971272842, now seen corresponding path program 1 times [2018-11-14 19:17:10,427 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:17:10,427 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:17:10,428 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:17:10,428 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 19:17:10,429 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:17:10,476 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:17:10,674 INFO L256 TraceCheckUtils]: 0: Hoare triple {185#true} call ULTIMATE.init(); {185#true} is VALID [2018-11-14 19:17:10,675 INFO L273 TraceCheckUtils]: 1: Hoare triple {185#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {185#true} is VALID [2018-11-14 19:17:10,675 INFO L273 TraceCheckUtils]: 2: Hoare triple {185#true} assume true; {185#true} is VALID [2018-11-14 19:17:10,675 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {185#true} {185#true} #66#return; {185#true} is VALID [2018-11-14 19:17:10,676 INFO L256 TraceCheckUtils]: 4: Hoare triple {185#true} call #t~ret10 := main(); {185#true} is VALID [2018-11-14 19:17:10,676 INFO L273 TraceCheckUtils]: 5: Hoare triple {185#true} ~MAX~0 := (if #t~nondet0 % 4294967296 % 4294967296 <= 2147483647 then #t~nondet0 % 4294967296 % 4294967296 else #t~nondet0 % 4294967296 % 4294967296 - 4294967296);havoc #t~nondet0;call ~#str1~0.base, ~#str1~0.offset := #Ultimate.alloc(~MAX~0 * 1);call ~#str2~0.base, ~#str2~0.offset := #Ultimate.alloc(~MAX~0 * 1);havoc ~cont~0;havoc ~i~0;havoc ~j~0;~cont~0 := 0;~i~0 := 0; {185#true} is VALID [2018-11-14 19:17:10,677 INFO L273 TraceCheckUtils]: 6: Hoare triple {185#true} assume true; {185#true} is VALID [2018-11-14 19:17:10,677 INFO L273 TraceCheckUtils]: 7: Hoare triple {185#true} assume !(~i~0 < ~MAX~0); {185#true} is VALID [2018-11-14 19:17:10,678 INFO L273 TraceCheckUtils]: 8: Hoare triple {185#true} call write~int(0, ~#str1~0.base, ~#str1~0.offset + (~MAX~0 - 1) * 1, 1);~j~0 := 0;~i~0 := ~MAX~0 - 1; {187#(<= main_~MAX~0 (+ main_~i~0 1))} is VALID [2018-11-14 19:17:10,679 INFO L273 TraceCheckUtils]: 9: Hoare triple {187#(<= main_~MAX~0 (+ main_~i~0 1))} assume true; {187#(<= main_~MAX~0 (+ main_~i~0 1))} is VALID [2018-11-14 19:17:10,681 INFO L273 TraceCheckUtils]: 10: Hoare triple {187#(<= main_~MAX~0 (+ main_~i~0 1))} assume !(~i~0 >= 0); {188#(<= main_~MAX~0 0)} is VALID [2018-11-14 19:17:10,682 INFO L273 TraceCheckUtils]: 11: Hoare triple {188#(<= main_~MAX~0 0)} ~j~0 := ~MAX~0 - 1;~i~0 := 0; {189#(and (<= main_~MAX~0 0) (= main_~i~0 0))} is VALID [2018-11-14 19:17:10,687 INFO L273 TraceCheckUtils]: 12: Hoare triple {189#(and (<= main_~MAX~0 0) (= main_~i~0 0))} assume true; {189#(and (<= main_~MAX~0 0) (= main_~i~0 0))} is VALID [2018-11-14 19:17:10,690 INFO L273 TraceCheckUtils]: 13: Hoare triple {189#(and (<= main_~MAX~0 0) (= main_~i~0 0))} assume !!(~i~0 < ~MAX~0);call #t~mem7 := read~int(~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);call #t~mem8 := read~int(~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1); {186#false} is VALID [2018-11-14 19:17:10,690 INFO L256 TraceCheckUtils]: 14: Hoare triple {186#false} call __VERIFIER_assert((if #t~mem7 == #t~mem8 then 1 else 0)); {186#false} is VALID [2018-11-14 19:17:10,691 INFO L273 TraceCheckUtils]: 15: Hoare triple {186#false} ~cond := #in~cond; {186#false} is VALID [2018-11-14 19:17:10,691 INFO L273 TraceCheckUtils]: 16: Hoare triple {186#false} assume ~cond == 0; {186#false} is VALID [2018-11-14 19:17:10,692 INFO L273 TraceCheckUtils]: 17: Hoare triple {186#false} assume !false; {186#false} is VALID [2018-11-14 19:17:10,695 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 19:17:10,695 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-14 19:17:10,695 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2018-11-14 19:17:10,697 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 18 [2018-11-14 19:17:10,697 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 19:17:10,698 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states. [2018-11-14 19:17:10,770 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 18 edges. 18 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:17:10,771 INFO L459 AbstractCegarLoop]: Interpolant automaton has 5 states [2018-11-14 19:17:10,771 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2018-11-14 19:17:10,771 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=9, Invalid=11, Unknown=0, NotChecked=0, Total=20 [2018-11-14 19:17:10,772 INFO L87 Difference]: Start difference. First operand 25 states and 27 transitions. Second operand 5 states. [2018-11-14 19:17:11,379 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:17:11,379 INFO L93 Difference]: Finished difference Result 42 states and 45 transitions. [2018-11-14 19:17:11,380 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2018-11-14 19:17:11,380 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 18 [2018-11-14 19:17:11,380 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 19:17:11,380 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2018-11-14 19:17:11,384 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 45 transitions. [2018-11-14 19:17:11,384 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2018-11-14 19:17:11,387 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 45 transitions. [2018-11-14 19:17:11,387 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 45 transitions. [2018-11-14 19:17:11,506 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:17:11,508 INFO L225 Difference]: With dead ends: 42 [2018-11-14 19:17:11,509 INFO L226 Difference]: Without dead ends: 28 [2018-11-14 19:17:11,510 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 6 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 4 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=14, Invalid=16, Unknown=0, NotChecked=0, Total=30 [2018-11-14 19:17:11,510 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 28 states. [2018-11-14 19:17:11,523 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 28 to 27. [2018-11-14 19:17:11,524 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 19:17:11,524 INFO L82 GeneralOperation]: Start isEquivalent. First operand 28 states. Second operand 27 states. [2018-11-14 19:17:11,524 INFO L74 IsIncluded]: Start isIncluded. First operand 28 states. Second operand 27 states. [2018-11-14 19:17:11,524 INFO L87 Difference]: Start difference. First operand 28 states. Second operand 27 states. [2018-11-14 19:17:11,527 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:17:11,528 INFO L93 Difference]: Finished difference Result 28 states and 30 transitions. [2018-11-14 19:17:11,528 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 30 transitions. [2018-11-14 19:17:11,528 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:17:11,529 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:17:11,529 INFO L74 IsIncluded]: Start isIncluded. First operand 27 states. Second operand 28 states. [2018-11-14 19:17:11,529 INFO L87 Difference]: Start difference. First operand 27 states. Second operand 28 states. [2018-11-14 19:17:11,531 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:17:11,532 INFO L93 Difference]: Finished difference Result 28 states and 30 transitions. [2018-11-14 19:17:11,532 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 30 transitions. [2018-11-14 19:17:11,532 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:17:11,533 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:17:11,533 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 19:17:11,533 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 19:17:11,533 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 27 states. [2018-11-14 19:17:11,535 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 27 states to 27 states and 29 transitions. [2018-11-14 19:17:11,536 INFO L78 Accepts]: Start accepts. Automaton has 27 states and 29 transitions. Word has length 18 [2018-11-14 19:17:11,536 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 19:17:11,536 INFO L480 AbstractCegarLoop]: Abstraction has 27 states and 29 transitions. [2018-11-14 19:17:11,536 INFO L481 AbstractCegarLoop]: Interpolant automaton has 5 states. [2018-11-14 19:17:11,536 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 29 transitions. [2018-11-14 19:17:11,537 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 22 [2018-11-14 19:17:11,537 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:17:11,537 INFO L375 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 19:17:11,538 INFO L423 AbstractCegarLoop]: === Iteration 3 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:17:11,538 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:17:11,538 INFO L82 PathProgramCache]: Analyzing trace with hash -1585722772, now seen corresponding path program 1 times [2018-11-14 19:17:11,538 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:17:11,538 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:17:11,540 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:17:11,540 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 19:17:11,540 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:17:11,558 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:17:11,629 INFO L256 TraceCheckUtils]: 0: Hoare triple {343#true} call ULTIMATE.init(); {343#true} is VALID [2018-11-14 19:17:11,630 INFO L273 TraceCheckUtils]: 1: Hoare triple {343#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {343#true} is VALID [2018-11-14 19:17:11,630 INFO L273 TraceCheckUtils]: 2: Hoare triple {343#true} assume true; {343#true} is VALID [2018-11-14 19:17:11,631 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {343#true} {343#true} #66#return; {343#true} is VALID [2018-11-14 19:17:11,632 INFO L256 TraceCheckUtils]: 4: Hoare triple {343#true} call #t~ret10 := main(); {343#true} is VALID [2018-11-14 19:17:11,632 INFO L273 TraceCheckUtils]: 5: Hoare triple {343#true} ~MAX~0 := (if #t~nondet0 % 4294967296 % 4294967296 <= 2147483647 then #t~nondet0 % 4294967296 % 4294967296 else #t~nondet0 % 4294967296 % 4294967296 - 4294967296);havoc #t~nondet0;call ~#str1~0.base, ~#str1~0.offset := #Ultimate.alloc(~MAX~0 * 1);call ~#str2~0.base, ~#str2~0.offset := #Ultimate.alloc(~MAX~0 * 1);havoc ~cont~0;havoc ~i~0;havoc ~j~0;~cont~0 := 0;~i~0 := 0; {345#(= main_~i~0 0)} is VALID [2018-11-14 19:17:11,634 INFO L273 TraceCheckUtils]: 6: Hoare triple {345#(= main_~i~0 0)} assume true; {345#(= main_~i~0 0)} is VALID [2018-11-14 19:17:11,634 INFO L273 TraceCheckUtils]: 7: Hoare triple {345#(= main_~i~0 0)} assume !(~i~0 < ~MAX~0); {346#(<= main_~MAX~0 0)} is VALID [2018-11-14 19:17:11,636 INFO L273 TraceCheckUtils]: 8: Hoare triple {346#(<= main_~MAX~0 0)} call write~int(0, ~#str1~0.base, ~#str1~0.offset + (~MAX~0 - 1) * 1, 1);~j~0 := 0;~i~0 := ~MAX~0 - 1; {347#(<= (+ main_~i~0 1) 0)} is VALID [2018-11-14 19:17:11,636 INFO L273 TraceCheckUtils]: 9: Hoare triple {347#(<= (+ main_~i~0 1) 0)} assume true; {347#(<= (+ main_~i~0 1) 0)} is VALID [2018-11-14 19:17:11,638 INFO L273 TraceCheckUtils]: 10: Hoare triple {347#(<= (+ main_~i~0 1) 0)} assume !!(~i~0 >= 0);call #t~mem4 := read~int(~#str1~0.base, ~#str1~0.offset + 0, 1);call write~int(#t~mem4, ~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1);havoc #t~mem4;#t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {344#false} is VALID [2018-11-14 19:17:11,638 INFO L273 TraceCheckUtils]: 11: Hoare triple {344#false} #t~post3 := ~i~0;~i~0 := #t~post3 - 1;havoc #t~post3; {344#false} is VALID [2018-11-14 19:17:11,639 INFO L273 TraceCheckUtils]: 12: Hoare triple {344#false} assume true; {344#false} is VALID [2018-11-14 19:17:11,639 INFO L273 TraceCheckUtils]: 13: Hoare triple {344#false} assume !(~i~0 >= 0); {344#false} is VALID [2018-11-14 19:17:11,640 INFO L273 TraceCheckUtils]: 14: Hoare triple {344#false} ~j~0 := ~MAX~0 - 1;~i~0 := 0; {344#false} is VALID [2018-11-14 19:17:11,640 INFO L273 TraceCheckUtils]: 15: Hoare triple {344#false} assume true; {344#false} is VALID [2018-11-14 19:17:11,641 INFO L273 TraceCheckUtils]: 16: Hoare triple {344#false} assume !!(~i~0 < ~MAX~0);call #t~mem7 := read~int(~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);call #t~mem8 := read~int(~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1); {344#false} is VALID [2018-11-14 19:17:11,641 INFO L256 TraceCheckUtils]: 17: Hoare triple {344#false} call __VERIFIER_assert((if #t~mem7 == #t~mem8 then 1 else 0)); {344#false} is VALID [2018-11-14 19:17:11,641 INFO L273 TraceCheckUtils]: 18: Hoare triple {344#false} ~cond := #in~cond; {344#false} is VALID [2018-11-14 19:17:11,642 INFO L273 TraceCheckUtils]: 19: Hoare triple {344#false} assume ~cond == 0; {344#false} is VALID [2018-11-14 19:17:11,642 INFO L273 TraceCheckUtils]: 20: Hoare triple {344#false} assume !false; {344#false} is VALID [2018-11-14 19:17:11,644 INFO L134 CoverageAnalysis]: Checked inductivity of 2 backedges. 2 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 19:17:11,644 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-14 19:17:11,644 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2018-11-14 19:17:11,644 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 21 [2018-11-14 19:17:11,645 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 19:17:11,645 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states. [2018-11-14 19:17:11,681 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 21 edges. 21 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:17:11,681 INFO L459 AbstractCegarLoop]: Interpolant automaton has 5 states [2018-11-14 19:17:11,682 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2018-11-14 19:17:11,682 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2018-11-14 19:17:11,682 INFO L87 Difference]: Start difference. First operand 27 states and 29 transitions. Second operand 5 states. [2018-11-14 19:17:12,092 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:17:12,093 INFO L93 Difference]: Finished difference Result 53 states and 58 transitions. [2018-11-14 19:17:12,093 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2018-11-14 19:17:12,093 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 21 [2018-11-14 19:17:12,094 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 19:17:12,094 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2018-11-14 19:17:12,097 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 56 transitions. [2018-11-14 19:17:12,097 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2018-11-14 19:17:12,100 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 56 transitions. [2018-11-14 19:17:12,101 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 56 transitions. [2018-11-14 19:17:12,230 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 56 edges. 56 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:17:12,232 INFO L225 Difference]: With dead ends: 53 [2018-11-14 19:17:12,232 INFO L226 Difference]: Without dead ends: 35 [2018-11-14 19:17:12,233 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 7 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 5 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=15, Invalid=27, Unknown=0, NotChecked=0, Total=42 [2018-11-14 19:17:12,233 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 35 states. [2018-11-14 19:17:12,258 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 35 to 29. [2018-11-14 19:17:12,258 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 19:17:12,258 INFO L82 GeneralOperation]: Start isEquivalent. First operand 35 states. Second operand 29 states. [2018-11-14 19:17:12,259 INFO L74 IsIncluded]: Start isIncluded. First operand 35 states. Second operand 29 states. [2018-11-14 19:17:12,259 INFO L87 Difference]: Start difference. First operand 35 states. Second operand 29 states. [2018-11-14 19:17:12,263 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:17:12,263 INFO L93 Difference]: Finished difference Result 35 states and 38 transitions. [2018-11-14 19:17:12,264 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 38 transitions. [2018-11-14 19:17:12,264 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:17:12,264 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:17:12,265 INFO L74 IsIncluded]: Start isIncluded. First operand 29 states. Second operand 35 states. [2018-11-14 19:17:12,265 INFO L87 Difference]: Start difference. First operand 29 states. Second operand 35 states. [2018-11-14 19:17:12,268 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:17:12,268 INFO L93 Difference]: Finished difference Result 35 states and 38 transitions. [2018-11-14 19:17:12,268 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 38 transitions. [2018-11-14 19:17:12,269 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:17:12,269 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:17:12,269 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 19:17:12,269 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 19:17:12,269 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 29 states. [2018-11-14 19:17:12,271 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 29 states to 29 states and 31 transitions. [2018-11-14 19:17:12,271 INFO L78 Accepts]: Start accepts. Automaton has 29 states and 31 transitions. Word has length 21 [2018-11-14 19:17:12,272 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 19:17:12,272 INFO L480 AbstractCegarLoop]: Abstraction has 29 states and 31 transitions. [2018-11-14 19:17:12,272 INFO L481 AbstractCegarLoop]: Interpolant automaton has 5 states. [2018-11-14 19:17:12,272 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 31 transitions. [2018-11-14 19:17:12,273 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 25 [2018-11-14 19:17:12,273 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:17:12,273 INFO L375 BasicCegarLoop]: trace histogram [2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 19:17:12,273 INFO L423 AbstractCegarLoop]: === Iteration 4 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:17:12,274 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:17:12,274 INFO L82 PathProgramCache]: Analyzing trace with hash 1045245671, now seen corresponding path program 1 times [2018-11-14 19:17:12,274 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:17:12,274 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:17:12,275 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:17:12,275 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 19:17:12,275 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:17:12,330 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:17:12,764 WARN L179 SmtUtils]: Spent 215.00 ms on a formula simplification. DAG size of input: 25 DAG size of output: 20 [2018-11-14 19:17:13,234 WARN L179 SmtUtils]: Spent 105.00 ms on a formula simplification. DAG size of input: 53 DAG size of output: 22 [2018-11-14 19:17:13,289 INFO L256 TraceCheckUtils]: 0: Hoare triple {535#true} call ULTIMATE.init(); {535#true} is VALID [2018-11-14 19:17:13,290 INFO L273 TraceCheckUtils]: 1: Hoare triple {535#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {535#true} is VALID [2018-11-14 19:17:13,290 INFO L273 TraceCheckUtils]: 2: Hoare triple {535#true} assume true; {535#true} is VALID [2018-11-14 19:17:13,290 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {535#true} {535#true} #66#return; {535#true} is VALID [2018-11-14 19:17:13,290 INFO L256 TraceCheckUtils]: 4: Hoare triple {535#true} call #t~ret10 := main(); {535#true} is VALID [2018-11-14 19:17:13,291 INFO L273 TraceCheckUtils]: 5: Hoare triple {535#true} ~MAX~0 := (if #t~nondet0 % 4294967296 % 4294967296 <= 2147483647 then #t~nondet0 % 4294967296 % 4294967296 else #t~nondet0 % 4294967296 % 4294967296 - 4294967296);havoc #t~nondet0;call ~#str1~0.base, ~#str1~0.offset := #Ultimate.alloc(~MAX~0 * 1);call ~#str2~0.base, ~#str2~0.offset := #Ultimate.alloc(~MAX~0 * 1);havoc ~cont~0;havoc ~i~0;havoc ~j~0;~cont~0 := 0;~i~0 := 0; {537#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} is VALID [2018-11-14 19:17:13,292 INFO L273 TraceCheckUtils]: 6: Hoare triple {537#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} assume true; {537#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} is VALID [2018-11-14 19:17:13,294 INFO L273 TraceCheckUtils]: 7: Hoare triple {537#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} assume !!(~i~0 < ~MAX~0);assume -128 <= #t~nondet2 && #t~nondet2 <= 127;call write~int(#t~nondet2, ~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);havoc #t~nondet2; {537#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} is VALID [2018-11-14 19:17:13,295 INFO L273 TraceCheckUtils]: 8: Hoare triple {537#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} #t~post1 := ~i~0;~i~0 := #t~post1 + 1;havoc #t~post1; {537#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} is VALID [2018-11-14 19:17:13,296 INFO L273 TraceCheckUtils]: 9: Hoare triple {537#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} assume true; {537#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} is VALID [2018-11-14 19:17:13,296 INFO L273 TraceCheckUtils]: 10: Hoare triple {537#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} assume !(~i~0 < ~MAX~0); {537#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} is VALID [2018-11-14 19:17:13,297 INFO L273 TraceCheckUtils]: 11: Hoare triple {537#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} call write~int(0, ~#str1~0.base, ~#str1~0.offset + (~MAX~0 - 1) * 1, 1);~j~0 := 0;~i~0 := ~MAX~0 - 1; {538#(and (<= main_~MAX~0 (+ main_~i~0 1)) (= |main_~#str1~0.offset| 0) (<= (+ main_~i~0 1) main_~MAX~0) (= |main_~#str2~0.offset| 0) (= (+ main_~j~0 |main_~#str2~0.offset|) 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)))} is VALID [2018-11-14 19:17:13,298 INFO L273 TraceCheckUtils]: 12: Hoare triple {538#(and (<= main_~MAX~0 (+ main_~i~0 1)) (= |main_~#str1~0.offset| 0) (<= (+ main_~i~0 1) main_~MAX~0) (= |main_~#str2~0.offset| 0) (= (+ main_~j~0 |main_~#str2~0.offset|) 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)))} assume true; {538#(and (<= main_~MAX~0 (+ main_~i~0 1)) (= |main_~#str1~0.offset| 0) (<= (+ main_~i~0 1) main_~MAX~0) (= |main_~#str2~0.offset| 0) (= (+ main_~j~0 |main_~#str2~0.offset|) 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)))} is VALID [2018-11-14 19:17:13,300 INFO L273 TraceCheckUtils]: 13: Hoare triple {538#(and (<= main_~MAX~0 (+ main_~i~0 1)) (= |main_~#str1~0.offset| 0) (<= (+ main_~i~0 1) main_~MAX~0) (= |main_~#str2~0.offset| 0) (= (+ main_~j~0 |main_~#str2~0.offset|) 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)))} assume !!(~i~0 >= 0);call #t~mem4 := read~int(~#str1~0.base, ~#str1~0.offset + 0, 1);call write~int(#t~mem4, ~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1);havoc #t~mem4;#t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {539#(and (<= main_~MAX~0 (+ main_~i~0 1)) (= |main_~#str1~0.offset| 0) (<= 1 main_~MAX~0) (= |main_~#str2~0.offset| 0) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) 0)))} is VALID [2018-11-14 19:17:13,301 INFO L273 TraceCheckUtils]: 14: Hoare triple {539#(and (<= main_~MAX~0 (+ main_~i~0 1)) (= |main_~#str1~0.offset| 0) (<= 1 main_~MAX~0) (= |main_~#str2~0.offset| 0) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) 0)))} #t~post3 := ~i~0;~i~0 := #t~post3 - 1;havoc #t~post3; {540#(and (= |main_~#str1~0.offset| 0) (<= 1 main_~MAX~0) (= |main_~#str2~0.offset| 0) (<= main_~MAX~0 (+ main_~i~0 2)) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) 0)))} is VALID [2018-11-14 19:17:13,303 INFO L273 TraceCheckUtils]: 15: Hoare triple {540#(and (= |main_~#str1~0.offset| 0) (<= 1 main_~MAX~0) (= |main_~#str2~0.offset| 0) (<= main_~MAX~0 (+ main_~i~0 2)) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) 0)))} assume true; {540#(and (= |main_~#str1~0.offset| 0) (<= 1 main_~MAX~0) (= |main_~#str2~0.offset| 0) (<= main_~MAX~0 (+ main_~i~0 2)) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) 0)))} is VALID [2018-11-14 19:17:13,304 INFO L273 TraceCheckUtils]: 16: Hoare triple {540#(and (= |main_~#str1~0.offset| 0) (<= 1 main_~MAX~0) (= |main_~#str2~0.offset| 0) (<= main_~MAX~0 (+ main_~i~0 2)) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) 0)))} assume !(~i~0 >= 0); {541#(and (= |main_~#str1~0.offset| 0) (<= 1 main_~MAX~0) (<= main_~MAX~0 1) (= |main_~#str2~0.offset| 0) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) 0)))} is VALID [2018-11-14 19:17:13,305 INFO L273 TraceCheckUtils]: 17: Hoare triple {541#(and (= |main_~#str1~0.offset| 0) (<= 1 main_~MAX~0) (<= main_~MAX~0 1) (= |main_~#str2~0.offset| 0) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) 0)))} ~j~0 := ~MAX~0 - 1;~i~0 := 0; {542#(and (= |main_~#str1~0.offset| 0) (= (select (select |#memory_int| |main_~#str1~0.base|) (+ main_~i~0 |main_~#str1~0.offset|)) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| main_~j~0))) (= 0 (+ main_~j~0 |main_~#str2~0.offset|)) (= |main_~#str2~0.offset| 0) (= main_~i~0 0))} is VALID [2018-11-14 19:17:13,306 INFO L273 TraceCheckUtils]: 18: Hoare triple {542#(and (= |main_~#str1~0.offset| 0) (= (select (select |#memory_int| |main_~#str1~0.base|) (+ main_~i~0 |main_~#str1~0.offset|)) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| main_~j~0))) (= 0 (+ main_~j~0 |main_~#str2~0.offset|)) (= |main_~#str2~0.offset| 0) (= main_~i~0 0))} assume true; {542#(and (= |main_~#str1~0.offset| 0) (= (select (select |#memory_int| |main_~#str1~0.base|) (+ main_~i~0 |main_~#str1~0.offset|)) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| main_~j~0))) (= 0 (+ main_~j~0 |main_~#str2~0.offset|)) (= |main_~#str2~0.offset| 0) (= main_~i~0 0))} is VALID [2018-11-14 19:17:13,307 INFO L273 TraceCheckUtils]: 19: Hoare triple {542#(and (= |main_~#str1~0.offset| 0) (= (select (select |#memory_int| |main_~#str1~0.base|) (+ main_~i~0 |main_~#str1~0.offset|)) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| main_~j~0))) (= 0 (+ main_~j~0 |main_~#str2~0.offset|)) (= |main_~#str2~0.offset| 0) (= main_~i~0 0))} assume !!(~i~0 < ~MAX~0);call #t~mem7 := read~int(~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);call #t~mem8 := read~int(~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1); {543#(= |main_#t~mem8| |main_#t~mem7|)} is VALID [2018-11-14 19:17:13,308 INFO L256 TraceCheckUtils]: 20: Hoare triple {543#(= |main_#t~mem8| |main_#t~mem7|)} call __VERIFIER_assert((if #t~mem7 == #t~mem8 then 1 else 0)); {544#(= |__VERIFIER_assert_#in~cond| 1)} is VALID [2018-11-14 19:17:13,309 INFO L273 TraceCheckUtils]: 21: Hoare triple {544#(= |__VERIFIER_assert_#in~cond| 1)} ~cond := #in~cond; {545#(= __VERIFIER_assert_~cond 1)} is VALID [2018-11-14 19:17:13,310 INFO L273 TraceCheckUtils]: 22: Hoare triple {545#(= __VERIFIER_assert_~cond 1)} assume ~cond == 0; {536#false} is VALID [2018-11-14 19:17:13,311 INFO L273 TraceCheckUtils]: 23: Hoare triple {536#false} assume !false; {536#false} is VALID [2018-11-14 19:17:13,316 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2018-11-14 19:17:13,317 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-14 19:17:13,317 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP 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 [2018-11-14 19:17:13,337 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 19:17:13,371 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:17:13,392 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:17:13,396 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-14 19:17:13,518 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 5 treesize of output 1 [2018-11-14 19:17:13,519 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2018-11-14 19:17:13,532 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:17:13,532 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:18, output treesize:14 [2018-11-14 19:17:13,753 WARN L179 SmtUtils]: Spent 125.00 ms on a formula simplification that was a NOOP. DAG size: 12 [2018-11-14 19:17:14,330 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 17 [2018-11-14 19:17:14,335 INFO L477 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 0 new quantified variables, introduced 0 case distinctions, treesize of input 12 treesize of output 11 [2018-11-14 19:17:14,337 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 19:17:14,342 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:17:14,357 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:17:14,357 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 1 variables, input treesize:32, output treesize:28 [2018-11-14 19:17:14,641 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 22 [2018-11-14 19:17:14,648 INFO L682 Elim1Store]: detected equality via solver [2018-11-14 19:17:14,649 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 13 treesize of output 9 [2018-11-14 19:17:14,651 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 19:17:14,662 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 3 [2018-11-14 19:17:14,665 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2018-11-14 19:17:14,668 INFO L267 ElimStorePlain]: Start of recursive call 2: 2 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:17:14,685 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:17:14,685 INFO L202 ElimStorePlain]: Needed 4 recursive calls to eliminate 4 variables, input treesize:38, output treesize:3 [2018-11-14 19:17:14,687 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 19:17:14,706 INFO L256 TraceCheckUtils]: 0: Hoare triple {535#true} call ULTIMATE.init(); {535#true} is VALID [2018-11-14 19:17:14,706 INFO L273 TraceCheckUtils]: 1: Hoare triple {535#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {535#true} is VALID [2018-11-14 19:17:14,707 INFO L273 TraceCheckUtils]: 2: Hoare triple {535#true} assume true; {535#true} is VALID [2018-11-14 19:17:14,707 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {535#true} {535#true} #66#return; {535#true} is VALID [2018-11-14 19:17:14,708 INFO L256 TraceCheckUtils]: 4: Hoare triple {535#true} call #t~ret10 := main(); {535#true} is VALID [2018-11-14 19:17:14,709 INFO L273 TraceCheckUtils]: 5: Hoare triple {535#true} ~MAX~0 := (if #t~nondet0 % 4294967296 % 4294967296 <= 2147483647 then #t~nondet0 % 4294967296 % 4294967296 else #t~nondet0 % 4294967296 % 4294967296 - 4294967296);havoc #t~nondet0;call ~#str1~0.base, ~#str1~0.offset := #Ultimate.alloc(~MAX~0 * 1);call ~#str2~0.base, ~#str2~0.offset := #Ultimate.alloc(~MAX~0 * 1);havoc ~cont~0;havoc ~i~0;havoc ~j~0;~cont~0 := 0;~i~0 := 0; {564#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (= main_~i~0 0))} is VALID [2018-11-14 19:17:14,710 INFO L273 TraceCheckUtils]: 6: Hoare triple {564#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (= main_~i~0 0))} assume true; {564#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (= main_~i~0 0))} is VALID [2018-11-14 19:17:14,711 INFO L273 TraceCheckUtils]: 7: Hoare triple {564#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (= main_~i~0 0))} assume !!(~i~0 < ~MAX~0);assume -128 <= #t~nondet2 && #t~nondet2 <= 127;call write~int(#t~nondet2, ~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);havoc #t~nondet2; {571#(and (= 0 |main_~#str1~0.offset|) (< main_~i~0 main_~MAX~0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (= main_~i~0 0))} is VALID [2018-11-14 19:17:14,712 INFO L273 TraceCheckUtils]: 8: Hoare triple {571#(and (= 0 |main_~#str1~0.offset|) (< main_~i~0 main_~MAX~0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (= main_~i~0 0))} #t~post1 := ~i~0;~i~0 := #t~post1 + 1;havoc #t~post1; {575#(and (= 0 |main_~#str1~0.offset|) (<= main_~i~0 1) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (< 0 main_~MAX~0))} is VALID [2018-11-14 19:17:14,713 INFO L273 TraceCheckUtils]: 9: Hoare triple {575#(and (= 0 |main_~#str1~0.offset|) (<= main_~i~0 1) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (< 0 main_~MAX~0))} assume true; {575#(and (= 0 |main_~#str1~0.offset|) (<= main_~i~0 1) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (< 0 main_~MAX~0))} is VALID [2018-11-14 19:17:14,725 INFO L273 TraceCheckUtils]: 10: Hoare triple {575#(and (= 0 |main_~#str1~0.offset|) (<= main_~i~0 1) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (< 0 main_~MAX~0))} assume !(~i~0 < ~MAX~0); {582#(and (<= main_~MAX~0 1) (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (< 0 main_~MAX~0))} is VALID [2018-11-14 19:17:14,727 INFO L273 TraceCheckUtils]: 11: Hoare triple {582#(and (<= main_~MAX~0 1) (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (< 0 main_~MAX~0))} call write~int(0, ~#str1~0.base, ~#str1~0.offset + (~MAX~0 - 1) * 1, 1);~j~0 := 0;~i~0 := ~MAX~0 - 1; {586#(and (<= main_~MAX~0 1) (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= main_~j~0 0) (= 0 |main_~#str2~0.offset|) (< 0 main_~MAX~0))} is VALID [2018-11-14 19:17:14,728 INFO L273 TraceCheckUtils]: 12: Hoare triple {586#(and (<= main_~MAX~0 1) (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= main_~j~0 0) (= 0 |main_~#str2~0.offset|) (< 0 main_~MAX~0))} assume true; {586#(and (<= main_~MAX~0 1) (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= main_~j~0 0) (= 0 |main_~#str2~0.offset|) (< 0 main_~MAX~0))} is VALID [2018-11-14 19:17:14,729 INFO L273 TraceCheckUtils]: 13: Hoare triple {586#(and (<= main_~MAX~0 1) (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= main_~j~0 0) (= 0 |main_~#str2~0.offset|) (< 0 main_~MAX~0))} assume !!(~i~0 >= 0);call #t~mem4 := read~int(~#str1~0.base, ~#str1~0.offset + 0, 1);call write~int(#t~mem4, ~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1);havoc #t~mem4;#t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {593#(and (<= main_~MAX~0 1) (= 0 |main_~#str1~0.offset|) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) |main_~#str2~0.offset|)) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (< 0 main_~MAX~0))} is VALID [2018-11-14 19:17:14,730 INFO L273 TraceCheckUtils]: 14: Hoare triple {593#(and (<= main_~MAX~0 1) (= 0 |main_~#str1~0.offset|) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) |main_~#str2~0.offset|)) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (< 0 main_~MAX~0))} #t~post3 := ~i~0;~i~0 := #t~post3 - 1;havoc #t~post3; {593#(and (<= main_~MAX~0 1) (= 0 |main_~#str1~0.offset|) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) |main_~#str2~0.offset|)) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (< 0 main_~MAX~0))} is VALID [2018-11-14 19:17:14,730 INFO L273 TraceCheckUtils]: 15: Hoare triple {593#(and (<= main_~MAX~0 1) (= 0 |main_~#str1~0.offset|) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) |main_~#str2~0.offset|)) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (< 0 main_~MAX~0))} assume true; {593#(and (<= main_~MAX~0 1) (= 0 |main_~#str1~0.offset|) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) |main_~#str2~0.offset|)) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (< 0 main_~MAX~0))} is VALID [2018-11-14 19:17:14,731 INFO L273 TraceCheckUtils]: 16: Hoare triple {593#(and (<= main_~MAX~0 1) (= 0 |main_~#str1~0.offset|) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) |main_~#str2~0.offset|)) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (< 0 main_~MAX~0))} assume !(~i~0 >= 0); {593#(and (<= main_~MAX~0 1) (= 0 |main_~#str1~0.offset|) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) |main_~#str2~0.offset|)) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (< 0 main_~MAX~0))} is VALID [2018-11-14 19:17:14,733 INFO L273 TraceCheckUtils]: 17: Hoare triple {593#(and (<= main_~MAX~0 1) (= 0 |main_~#str1~0.offset|) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) |main_~#str2~0.offset|)) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (< 0 main_~MAX~0))} ~j~0 := ~MAX~0 - 1;~i~0 := 0; {606#(and (= 0 |main_~#str1~0.offset|) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) |main_~#str2~0.offset|)) (< 0 (+ main_~j~0 1)) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (<= main_~j~0 0) (= main_~i~0 0))} is VALID [2018-11-14 19:17:14,734 INFO L273 TraceCheckUtils]: 18: Hoare triple {606#(and (= 0 |main_~#str1~0.offset|) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) |main_~#str2~0.offset|)) (< 0 (+ main_~j~0 1)) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (<= main_~j~0 0) (= main_~i~0 0))} assume true; {606#(and (= 0 |main_~#str1~0.offset|) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) |main_~#str2~0.offset|)) (< 0 (+ main_~j~0 1)) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (<= main_~j~0 0) (= main_~i~0 0))} is VALID [2018-11-14 19:17:14,737 INFO L273 TraceCheckUtils]: 19: Hoare triple {606#(and (= 0 |main_~#str1~0.offset|) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) |main_~#str2~0.offset|)) (< 0 (+ main_~j~0 1)) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (<= main_~j~0 0) (= main_~i~0 0))} assume !!(~i~0 < ~MAX~0);call #t~mem7 := read~int(~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);call #t~mem8 := read~int(~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1); {543#(= |main_#t~mem8| |main_#t~mem7|)} is VALID [2018-11-14 19:17:14,738 INFO L256 TraceCheckUtils]: 20: Hoare triple {543#(= |main_#t~mem8| |main_#t~mem7|)} call __VERIFIER_assert((if #t~mem7 == #t~mem8 then 1 else 0)); {544#(= |__VERIFIER_assert_#in~cond| 1)} is VALID [2018-11-14 19:17:14,738 INFO L273 TraceCheckUtils]: 21: Hoare triple {544#(= |__VERIFIER_assert_#in~cond| 1)} ~cond := #in~cond; {545#(= __VERIFIER_assert_~cond 1)} is VALID [2018-11-14 19:17:14,739 INFO L273 TraceCheckUtils]: 22: Hoare triple {545#(= __VERIFIER_assert_~cond 1)} assume ~cond == 0; {536#false} is VALID [2018-11-14 19:17:14,739 INFO L273 TraceCheckUtils]: 23: Hoare triple {536#false} assume !false; {536#false} is VALID [2018-11-14 19:17:14,744 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 0 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 19:17:14,768 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-14 19:17:14,768 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 12] total 18 [2018-11-14 19:17:14,769 INFO L78 Accepts]: Start accepts. Automaton has 18 states. Word has length 24 [2018-11-14 19:17:14,770 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 19:17:14,770 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 18 states. [2018-11-14 19:17:14,837 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 38 edges. 38 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:17:14,837 INFO L459 AbstractCegarLoop]: Interpolant automaton has 18 states [2018-11-14 19:17:14,838 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 18 interpolants. [2018-11-14 19:17:14,838 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=49, Invalid=257, Unknown=0, NotChecked=0, Total=306 [2018-11-14 19:17:14,838 INFO L87 Difference]: Start difference. First operand 29 states and 31 transitions. Second operand 18 states. [2018-11-14 19:17:17,771 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:17:17,772 INFO L93 Difference]: Finished difference Result 70 states and 78 transitions. [2018-11-14 19:17:17,772 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 18 states. [2018-11-14 19:17:17,772 INFO L78 Accepts]: Start accepts. Automaton has 18 states. Word has length 24 [2018-11-14 19:17:17,773 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 19:17:17,773 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 18 states. [2018-11-14 19:17:17,777 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 78 transitions. [2018-11-14 19:17:17,778 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 18 states. [2018-11-14 19:17:17,782 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 78 transitions. [2018-11-14 19:17:17,782 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 18 states and 78 transitions. [2018-11-14 19:17:18,171 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 78 edges. 78 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:17:18,177 INFO L225 Difference]: With dead ends: 70 [2018-11-14 19:17:18,177 INFO L226 Difference]: Without dead ends: 68 [2018-11-14 19:17:18,179 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 44 GetRequests, 17 SyntacticMatches, 1 SemanticMatches, 26 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 99 ImplicationChecksByTransitivity, 2.1s TimeCoverageRelationStatistics Valid=163, Invalid=593, Unknown=0, NotChecked=0, Total=756 [2018-11-14 19:17:18,180 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 68 states. [2018-11-14 19:17:18,272 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 68 to 49. [2018-11-14 19:17:18,272 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 19:17:18,272 INFO L82 GeneralOperation]: Start isEquivalent. First operand 68 states. Second operand 49 states. [2018-11-14 19:17:18,272 INFO L74 IsIncluded]: Start isIncluded. First operand 68 states. Second operand 49 states. [2018-11-14 19:17:18,273 INFO L87 Difference]: Start difference. First operand 68 states. Second operand 49 states. [2018-11-14 19:17:18,277 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:17:18,278 INFO L93 Difference]: Finished difference Result 68 states and 76 transitions. [2018-11-14 19:17:18,278 INFO L276 IsEmpty]: Start isEmpty. Operand 68 states and 76 transitions. [2018-11-14 19:17:18,279 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:17:18,279 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:17:18,279 INFO L74 IsIncluded]: Start isIncluded. First operand 49 states. Second operand 68 states. [2018-11-14 19:17:18,279 INFO L87 Difference]: Start difference. First operand 49 states. Second operand 68 states. [2018-11-14 19:17:18,283 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:17:18,284 INFO L93 Difference]: Finished difference Result 68 states and 76 transitions. [2018-11-14 19:17:18,284 INFO L276 IsEmpty]: Start isEmpty. Operand 68 states and 76 transitions. [2018-11-14 19:17:18,285 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:17:18,285 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:17:18,285 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 19:17:18,285 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 19:17:18,286 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 49 states. [2018-11-14 19:17:18,288 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 49 states to 49 states and 54 transitions. [2018-11-14 19:17:18,288 INFO L78 Accepts]: Start accepts. Automaton has 49 states and 54 transitions. Word has length 24 [2018-11-14 19:17:18,289 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 19:17:18,289 INFO L480 AbstractCegarLoop]: Abstraction has 49 states and 54 transitions. [2018-11-14 19:17:18,289 INFO L481 AbstractCegarLoop]: Interpolant automaton has 18 states. [2018-11-14 19:17:18,289 INFO L276 IsEmpty]: Start isEmpty. Operand 49 states and 54 transitions. [2018-11-14 19:17:18,290 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 31 [2018-11-14 19:17:18,290 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:17:18,290 INFO L375 BasicCegarLoop]: trace histogram [3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 19:17:18,290 INFO L423 AbstractCegarLoop]: === Iteration 5 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:17:18,291 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:17:18,291 INFO L82 PathProgramCache]: Analyzing trace with hash 260616490, now seen corresponding path program 2 times [2018-11-14 19:17:18,291 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:17:18,291 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:17:18,292 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:17:18,292 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 19:17:18,293 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:17:18,328 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:17:19,040 INFO L256 TraceCheckUtils]: 0: Hoare triple {941#true} call ULTIMATE.init(); {941#true} is VALID [2018-11-14 19:17:19,040 INFO L273 TraceCheckUtils]: 1: Hoare triple {941#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {941#true} is VALID [2018-11-14 19:17:19,041 INFO L273 TraceCheckUtils]: 2: Hoare triple {941#true} assume true; {941#true} is VALID [2018-11-14 19:17:19,041 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {941#true} {941#true} #66#return; {941#true} is VALID [2018-11-14 19:17:19,041 INFO L256 TraceCheckUtils]: 4: Hoare triple {941#true} call #t~ret10 := main(); {941#true} is VALID [2018-11-14 19:17:19,047 INFO L273 TraceCheckUtils]: 5: Hoare triple {941#true} ~MAX~0 := (if #t~nondet0 % 4294967296 % 4294967296 <= 2147483647 then #t~nondet0 % 4294967296 % 4294967296 else #t~nondet0 % 4294967296 % 4294967296 - 4294967296);havoc #t~nondet0;call ~#str1~0.base, ~#str1~0.offset := #Ultimate.alloc(~MAX~0 * 1);call ~#str2~0.base, ~#str2~0.offset := #Ultimate.alloc(~MAX~0 * 1);havoc ~cont~0;havoc ~i~0;havoc ~j~0;~cont~0 := 0;~i~0 := 0; {943#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0) (= main_~i~0 0))} is VALID [2018-11-14 19:17:19,047 INFO L273 TraceCheckUtils]: 6: Hoare triple {943#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0) (= main_~i~0 0))} assume true; {943#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0) (= main_~i~0 0))} is VALID [2018-11-14 19:17:19,048 INFO L273 TraceCheckUtils]: 7: Hoare triple {943#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0) (= main_~i~0 0))} assume !!(~i~0 < ~MAX~0);assume -128 <= #t~nondet2 && #t~nondet2 <= 127;call write~int(#t~nondet2, ~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);havoc #t~nondet2; {943#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0) (= main_~i~0 0))} is VALID [2018-11-14 19:17:19,049 INFO L273 TraceCheckUtils]: 8: Hoare triple {943#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0) (= main_~i~0 0))} #t~post1 := ~i~0;~i~0 := #t~post1 + 1;havoc #t~post1; {944#(and (= |main_~#str1~0.offset| 0) (<= 1 main_~i~0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} is VALID [2018-11-14 19:17:19,049 INFO L273 TraceCheckUtils]: 9: Hoare triple {944#(and (= |main_~#str1~0.offset| 0) (<= 1 main_~i~0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} assume true; {944#(and (= |main_~#str1~0.offset| 0) (<= 1 main_~i~0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} is VALID [2018-11-14 19:17:19,050 INFO L273 TraceCheckUtils]: 10: Hoare triple {944#(and (= |main_~#str1~0.offset| 0) (<= 1 main_~i~0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} assume !!(~i~0 < ~MAX~0);assume -128 <= #t~nondet2 && #t~nondet2 <= 127;call write~int(#t~nondet2, ~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);havoc #t~nondet2; {945#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0) (<= 2 main_~MAX~0))} is VALID [2018-11-14 19:17:19,051 INFO L273 TraceCheckUtils]: 11: Hoare triple {945#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0) (<= 2 main_~MAX~0))} #t~post1 := ~i~0;~i~0 := #t~post1 + 1;havoc #t~post1; {945#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0) (<= 2 main_~MAX~0))} is VALID [2018-11-14 19:17:19,052 INFO L273 TraceCheckUtils]: 12: Hoare triple {945#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0) (<= 2 main_~MAX~0))} assume true; {945#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0) (<= 2 main_~MAX~0))} is VALID [2018-11-14 19:17:19,058 INFO L273 TraceCheckUtils]: 13: Hoare triple {945#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0) (<= 2 main_~MAX~0))} assume !(~i~0 < ~MAX~0); {945#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0) (<= 2 main_~MAX~0))} is VALID [2018-11-14 19:17:19,059 INFO L273 TraceCheckUtils]: 14: Hoare triple {945#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0) (<= 2 main_~MAX~0))} call write~int(0, ~#str1~0.base, ~#str1~0.offset + (~MAX~0 - 1) * 1, 1);~j~0 := 0;~i~0 := ~MAX~0 - 1; {946#(and (<= main_~MAX~0 (+ main_~i~0 1)) (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= main_~j~0 0) (= |main_~#str2~0.offset| 0) (<= 2 main_~MAX~0))} is VALID [2018-11-14 19:17:19,059 INFO L273 TraceCheckUtils]: 15: Hoare triple {946#(and (<= main_~MAX~0 (+ main_~i~0 1)) (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= main_~j~0 0) (= |main_~#str2~0.offset| 0) (<= 2 main_~MAX~0))} assume true; {946#(and (<= main_~MAX~0 (+ main_~i~0 1)) (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= main_~j~0 0) (= |main_~#str2~0.offset| 0) (<= 2 main_~MAX~0))} is VALID [2018-11-14 19:17:19,060 INFO L273 TraceCheckUtils]: 16: Hoare triple {946#(and (<= main_~MAX~0 (+ main_~i~0 1)) (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= main_~j~0 0) (= |main_~#str2~0.offset| 0) (<= 2 main_~MAX~0))} assume !!(~i~0 >= 0);call #t~mem4 := read~int(~#str1~0.base, ~#str1~0.offset + 0, 1);call write~int(#t~mem4, ~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1);havoc #t~mem4;#t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {947#(and (<= main_~MAX~0 (+ main_~i~0 1)) (= 1 (+ main_~j~0 |main_~#str2~0.offset|)) (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0) (<= 2 main_~MAX~0))} is VALID [2018-11-14 19:17:19,061 INFO L273 TraceCheckUtils]: 17: Hoare triple {947#(and (<= main_~MAX~0 (+ main_~i~0 1)) (= 1 (+ main_~j~0 |main_~#str2~0.offset|)) (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0) (<= 2 main_~MAX~0))} #t~post3 := ~i~0;~i~0 := #t~post3 - 1;havoc #t~post3; {948#(and (= 1 (+ main_~j~0 |main_~#str2~0.offset|)) (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0) (<= 2 main_~MAX~0) (<= main_~MAX~0 (+ main_~i~0 2)))} is VALID [2018-11-14 19:17:19,076 INFO L273 TraceCheckUtils]: 18: Hoare triple {948#(and (= 1 (+ main_~j~0 |main_~#str2~0.offset|)) (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0) (<= 2 main_~MAX~0) (<= main_~MAX~0 (+ main_~i~0 2)))} assume true; {948#(and (= 1 (+ main_~j~0 |main_~#str2~0.offset|)) (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0) (<= 2 main_~MAX~0) (<= main_~MAX~0 (+ main_~i~0 2)))} is VALID [2018-11-14 19:17:19,081 INFO L273 TraceCheckUtils]: 19: Hoare triple {948#(and (= 1 (+ main_~j~0 |main_~#str2~0.offset|)) (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0) (<= 2 main_~MAX~0) (<= main_~MAX~0 (+ main_~i~0 2)))} assume !!(~i~0 >= 0);call #t~mem4 := read~int(~#str1~0.base, ~#str1~0.offset + 0, 1);call write~int(#t~mem4, ~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1);havoc #t~mem4;#t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {949#(and (= |main_~#str1~0.offset| 0) (= |main_~#str2~0.offset| 0) (<= 2 main_~MAX~0) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) 1)) (<= main_~MAX~0 (+ main_~i~0 2)))} is VALID [2018-11-14 19:17:19,082 INFO L273 TraceCheckUtils]: 20: Hoare triple {949#(and (= |main_~#str1~0.offset| 0) (= |main_~#str2~0.offset| 0) (<= 2 main_~MAX~0) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) 1)) (<= main_~MAX~0 (+ main_~i~0 2)))} #t~post3 := ~i~0;~i~0 := #t~post3 - 1;havoc #t~post3; {950#(and (= |main_~#str1~0.offset| 0) (<= main_~MAX~0 (+ main_~i~0 3)) (= |main_~#str2~0.offset| 0) (<= 2 main_~MAX~0) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) 1)))} is VALID [2018-11-14 19:17:19,083 INFO L273 TraceCheckUtils]: 21: Hoare triple {950#(and (= |main_~#str1~0.offset| 0) (<= main_~MAX~0 (+ main_~i~0 3)) (= |main_~#str2~0.offset| 0) (<= 2 main_~MAX~0) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) 1)))} assume true; {950#(and (= |main_~#str1~0.offset| 0) (<= main_~MAX~0 (+ main_~i~0 3)) (= |main_~#str2~0.offset| 0) (<= 2 main_~MAX~0) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) 1)))} is VALID [2018-11-14 19:17:19,086 INFO L273 TraceCheckUtils]: 22: Hoare triple {950#(and (= |main_~#str1~0.offset| 0) (<= main_~MAX~0 (+ main_~i~0 3)) (= |main_~#str2~0.offset| 0) (<= 2 main_~MAX~0) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) 1)))} assume !(~i~0 >= 0); {951#(and (<= main_~MAX~0 2) (= |main_~#str1~0.offset| 0) (= |main_~#str2~0.offset| 0) (<= 2 main_~MAX~0) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) 1)))} is VALID [2018-11-14 19:17:19,087 INFO L273 TraceCheckUtils]: 23: Hoare triple {951#(and (<= main_~MAX~0 2) (= |main_~#str1~0.offset| 0) (= |main_~#str2~0.offset| 0) (<= 2 main_~MAX~0) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) 1)))} ~j~0 := ~MAX~0 - 1;~i~0 := 0; {952#(and (= |main_~#str1~0.offset| 0) (= (select (select |#memory_int| |main_~#str1~0.base|) (+ main_~i~0 |main_~#str1~0.offset|)) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| main_~j~0))) (= |main_~#str2~0.offset| 0) (= (+ main_~j~0 |main_~#str2~0.offset|) 1) (= main_~i~0 0))} is VALID [2018-11-14 19:17:19,088 INFO L273 TraceCheckUtils]: 24: Hoare triple {952#(and (= |main_~#str1~0.offset| 0) (= (select (select |#memory_int| |main_~#str1~0.base|) (+ main_~i~0 |main_~#str1~0.offset|)) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| main_~j~0))) (= |main_~#str2~0.offset| 0) (= (+ main_~j~0 |main_~#str2~0.offset|) 1) (= main_~i~0 0))} assume true; {952#(and (= |main_~#str1~0.offset| 0) (= (select (select |#memory_int| |main_~#str1~0.base|) (+ main_~i~0 |main_~#str1~0.offset|)) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| main_~j~0))) (= |main_~#str2~0.offset| 0) (= (+ main_~j~0 |main_~#str2~0.offset|) 1) (= main_~i~0 0))} is VALID [2018-11-14 19:17:19,091 INFO L273 TraceCheckUtils]: 25: Hoare triple {952#(and (= |main_~#str1~0.offset| 0) (= (select (select |#memory_int| |main_~#str1~0.base|) (+ main_~i~0 |main_~#str1~0.offset|)) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| main_~j~0))) (= |main_~#str2~0.offset| 0) (= (+ main_~j~0 |main_~#str2~0.offset|) 1) (= main_~i~0 0))} assume !!(~i~0 < ~MAX~0);call #t~mem7 := read~int(~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);call #t~mem8 := read~int(~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1); {953#(= |main_#t~mem8| |main_#t~mem7|)} is VALID [2018-11-14 19:17:19,092 INFO L256 TraceCheckUtils]: 26: Hoare triple {953#(= |main_#t~mem8| |main_#t~mem7|)} call __VERIFIER_assert((if #t~mem7 == #t~mem8 then 1 else 0)); {954#(= |__VERIFIER_assert_#in~cond| 1)} is VALID [2018-11-14 19:17:19,093 INFO L273 TraceCheckUtils]: 27: Hoare triple {954#(= |__VERIFIER_assert_#in~cond| 1)} ~cond := #in~cond; {955#(= __VERIFIER_assert_~cond 1)} is VALID [2018-11-14 19:17:19,093 INFO L273 TraceCheckUtils]: 28: Hoare triple {955#(= __VERIFIER_assert_~cond 1)} assume ~cond == 0; {942#false} is VALID [2018-11-14 19:17:19,093 INFO L273 TraceCheckUtils]: 29: Hoare triple {942#false} assume !false; {942#false} is VALID [2018-11-14 19:17:19,096 INFO L134 CoverageAnalysis]: Checked inductivity of 14 backedges. 0 proven. 14 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 19:17:19,097 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-14 19:17:19,097 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP 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 [2018-11-14 19:17:19,106 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST1 [2018-11-14 19:17:19,151 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2018-11-14 19:17:19,151 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-14 19:17:19,176 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:17:19,178 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-14 19:17:19,215 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 5 treesize of output 1 [2018-11-14 19:17:19,217 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2018-11-14 19:17:19,231 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:17:19,231 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:15, output treesize:11 [2018-11-14 19:17:19,464 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 17 treesize of output 19 [2018-11-14 19:17:19,468 INFO L477 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 0 new quantified variables, introduced 0 case distinctions, treesize of input 14 treesize of output 13 [2018-11-14 19:17:19,470 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 19:17:19,473 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:17:19,486 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:17:19,487 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 1 variables, input treesize:36, output treesize:32 [2018-11-14 19:17:19,775 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 22 [2018-11-14 19:17:19,780 INFO L682 Elim1Store]: detected equality via solver [2018-11-14 19:17:19,781 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 13 treesize of output 9 [2018-11-14 19:17:19,783 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 19:17:19,794 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 3 [2018-11-14 19:17:19,796 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2018-11-14 19:17:19,798 INFO L267 ElimStorePlain]: Start of recursive call 2: 2 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:17:19,808 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:17:19,808 INFO L202 ElimStorePlain]: Needed 4 recursive calls to eliminate 4 variables, input treesize:36, output treesize:3 [2018-11-14 19:17:19,811 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 19:17:19,826 INFO L256 TraceCheckUtils]: 0: Hoare triple {941#true} call ULTIMATE.init(); {941#true} is VALID [2018-11-14 19:17:19,826 INFO L273 TraceCheckUtils]: 1: Hoare triple {941#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {941#true} is VALID [2018-11-14 19:17:19,827 INFO L273 TraceCheckUtils]: 2: Hoare triple {941#true} assume true; {941#true} is VALID [2018-11-14 19:17:19,827 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {941#true} {941#true} #66#return; {941#true} is VALID [2018-11-14 19:17:19,827 INFO L256 TraceCheckUtils]: 4: Hoare triple {941#true} call #t~ret10 := main(); {941#true} is VALID [2018-11-14 19:17:19,828 INFO L273 TraceCheckUtils]: 5: Hoare triple {941#true} ~MAX~0 := (if #t~nondet0 % 4294967296 % 4294967296 <= 2147483647 then #t~nondet0 % 4294967296 % 4294967296 else #t~nondet0 % 4294967296 % 4294967296 - 4294967296);havoc #t~nondet0;call ~#str1~0.base, ~#str1~0.offset := #Ultimate.alloc(~MAX~0 * 1);call ~#str2~0.base, ~#str2~0.offset := #Ultimate.alloc(~MAX~0 * 1);havoc ~cont~0;havoc ~i~0;havoc ~j~0;~cont~0 := 0;~i~0 := 0; {974#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|))} is VALID [2018-11-14 19:17:19,828 INFO L273 TraceCheckUtils]: 6: Hoare triple {974#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|))} assume true; {974#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|))} is VALID [2018-11-14 19:17:19,829 INFO L273 TraceCheckUtils]: 7: Hoare triple {974#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|))} assume !!(~i~0 < ~MAX~0);assume -128 <= #t~nondet2 && #t~nondet2 <= 127;call write~int(#t~nondet2, ~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);havoc #t~nondet2; {974#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|))} is VALID [2018-11-14 19:17:19,830 INFO L273 TraceCheckUtils]: 8: Hoare triple {974#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|))} #t~post1 := ~i~0;~i~0 := #t~post1 + 1;havoc #t~post1; {974#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|))} is VALID [2018-11-14 19:17:19,831 INFO L273 TraceCheckUtils]: 9: Hoare triple {974#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|))} assume true; {974#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|))} is VALID [2018-11-14 19:17:19,832 INFO L273 TraceCheckUtils]: 10: Hoare triple {974#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|))} assume !!(~i~0 < ~MAX~0);assume -128 <= #t~nondet2 && #t~nondet2 <= 127;call write~int(#t~nondet2, ~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);havoc #t~nondet2; {974#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|))} is VALID [2018-11-14 19:17:19,833 INFO L273 TraceCheckUtils]: 11: Hoare triple {974#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|))} #t~post1 := ~i~0;~i~0 := #t~post1 + 1;havoc #t~post1; {974#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|))} is VALID [2018-11-14 19:17:19,834 INFO L273 TraceCheckUtils]: 12: Hoare triple {974#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|))} assume true; {974#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|))} is VALID [2018-11-14 19:17:19,834 INFO L273 TraceCheckUtils]: 13: Hoare triple {974#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|))} assume !(~i~0 < ~MAX~0); {974#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|))} is VALID [2018-11-14 19:17:19,835 INFO L273 TraceCheckUtils]: 14: Hoare triple {974#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|))} call write~int(0, ~#str1~0.base, ~#str1~0.offset + (~MAX~0 - 1) * 1, 1);~j~0 := 0;~i~0 := ~MAX~0 - 1; {1002#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= main_~j~0 0) (= 0 |main_~#str2~0.offset|) (= (+ main_~i~0 1) main_~MAX~0))} is VALID [2018-11-14 19:17:19,836 INFO L273 TraceCheckUtils]: 15: Hoare triple {1002#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= main_~j~0 0) (= 0 |main_~#str2~0.offset|) (= (+ main_~i~0 1) main_~MAX~0))} assume true; {1002#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= main_~j~0 0) (= 0 |main_~#str2~0.offset|) (= (+ main_~i~0 1) main_~MAX~0))} is VALID [2018-11-14 19:17:19,837 INFO L273 TraceCheckUtils]: 16: Hoare triple {1002#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= main_~j~0 0) (= 0 |main_~#str2~0.offset|) (= (+ main_~i~0 1) main_~MAX~0))} assume !!(~i~0 >= 0);call #t~mem4 := read~int(~#str1~0.base, ~#str1~0.offset + 0, 1);call write~int(#t~mem4, ~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1);havoc #t~mem4;#t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1009#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (= main_~j~0 1) (= (+ main_~i~0 1) main_~MAX~0))} is VALID [2018-11-14 19:17:19,839 INFO L273 TraceCheckUtils]: 17: Hoare triple {1009#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (= main_~j~0 1) (= (+ main_~i~0 1) main_~MAX~0))} #t~post3 := ~i~0;~i~0 := #t~post3 - 1;havoc #t~post3; {1013#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= main_~MAX~0 (+ main_~i~0 2)) (= 0 |main_~#str2~0.offset|) (= main_~j~0 1))} is VALID [2018-11-14 19:17:19,840 INFO L273 TraceCheckUtils]: 18: Hoare triple {1013#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= main_~MAX~0 (+ main_~i~0 2)) (= 0 |main_~#str2~0.offset|) (= main_~j~0 1))} assume true; {1013#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= main_~MAX~0 (+ main_~i~0 2)) (= 0 |main_~#str2~0.offset|) (= main_~j~0 1))} is VALID [2018-11-14 19:17:19,841 INFO L273 TraceCheckUtils]: 19: Hoare triple {1013#(and (= 0 |main_~#str1~0.offset|) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= main_~MAX~0 (+ main_~i~0 2)) (= 0 |main_~#str2~0.offset|) (= main_~j~0 1))} assume !!(~i~0 >= 0);call #t~mem4 := read~int(~#str1~0.base, ~#str1~0.offset + 0, 1);call write~int(#t~mem4, ~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1);havoc #t~mem4;#t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1020#(and (<= 0 main_~i~0) (= 0 |main_~#str1~0.offset|) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= main_~MAX~0 (+ main_~i~0 2)) (= 0 |main_~#str2~0.offset|))} is VALID [2018-11-14 19:17:19,842 INFO L273 TraceCheckUtils]: 20: Hoare triple {1020#(and (<= 0 main_~i~0) (= 0 |main_~#str1~0.offset|) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= main_~MAX~0 (+ main_~i~0 2)) (= 0 |main_~#str2~0.offset|))} #t~post3 := ~i~0;~i~0 := #t~post3 - 1;havoc #t~post3; {1024#(and (<= 0 (+ main_~i~0 1)) (= 0 |main_~#str1~0.offset|) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= main_~MAX~0 (+ main_~i~0 3)) (= 0 |main_~#str2~0.offset|))} is VALID [2018-11-14 19:17:19,843 INFO L273 TraceCheckUtils]: 21: Hoare triple {1024#(and (<= 0 (+ main_~i~0 1)) (= 0 |main_~#str1~0.offset|) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= main_~MAX~0 (+ main_~i~0 3)) (= 0 |main_~#str2~0.offset|))} assume true; {1024#(and (<= 0 (+ main_~i~0 1)) (= 0 |main_~#str1~0.offset|) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= main_~MAX~0 (+ main_~i~0 3)) (= 0 |main_~#str2~0.offset|))} is VALID [2018-11-14 19:17:19,845 INFO L273 TraceCheckUtils]: 22: Hoare triple {1024#(and (<= 0 (+ main_~i~0 1)) (= 0 |main_~#str1~0.offset|) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= main_~MAX~0 (+ main_~i~0 3)) (= 0 |main_~#str2~0.offset|))} assume !(~i~0 >= 0); {1031#(and (< main_~MAX~0 3) (= 0 |main_~#str1~0.offset|) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (<= 2 main_~MAX~0) (= 0 |main_~#str2~0.offset|))} is VALID [2018-11-14 19:17:19,847 INFO L273 TraceCheckUtils]: 23: Hoare triple {1031#(and (< main_~MAX~0 3) (= 0 |main_~#str1~0.offset|) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (<= 2 main_~MAX~0) (= 0 |main_~#str2~0.offset|))} ~j~0 := ~MAX~0 - 1;~i~0 := 0; {1035#(and (< main_~j~0 2) (= 0 |main_~#str1~0.offset|) (<= 1 main_~j~0) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (= main_~i~0 0))} is VALID [2018-11-14 19:17:19,848 INFO L273 TraceCheckUtils]: 24: Hoare triple {1035#(and (< main_~j~0 2) (= 0 |main_~#str1~0.offset|) (<= 1 main_~j~0) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (= main_~i~0 0))} assume true; {1035#(and (< main_~j~0 2) (= 0 |main_~#str1~0.offset|) (<= 1 main_~j~0) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (= main_~i~0 0))} is VALID [2018-11-14 19:17:19,850 INFO L273 TraceCheckUtils]: 25: Hoare triple {1035#(and (< main_~j~0 2) (= 0 |main_~#str1~0.offset|) (<= 1 main_~j~0) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= 0 |main_~#str2~0.offset|) (= main_~i~0 0))} assume !!(~i~0 < ~MAX~0);call #t~mem7 := read~int(~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);call #t~mem8 := read~int(~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1); {953#(= |main_#t~mem8| |main_#t~mem7|)} is VALID [2018-11-14 19:17:19,851 INFO L256 TraceCheckUtils]: 26: Hoare triple {953#(= |main_#t~mem8| |main_#t~mem7|)} call __VERIFIER_assert((if #t~mem7 == #t~mem8 then 1 else 0)); {954#(= |__VERIFIER_assert_#in~cond| 1)} is VALID [2018-11-14 19:17:19,851 INFO L273 TraceCheckUtils]: 27: Hoare triple {954#(= |__VERIFIER_assert_#in~cond| 1)} ~cond := #in~cond; {955#(= __VERIFIER_assert_~cond 1)} is VALID [2018-11-14 19:17:19,852 INFO L273 TraceCheckUtils]: 28: Hoare triple {955#(= __VERIFIER_assert_~cond 1)} assume ~cond == 0; {942#false} is VALID [2018-11-14 19:17:19,852 INFO L273 TraceCheckUtils]: 29: Hoare triple {942#false} assume !false; {942#false} is VALID [2018-11-14 19:17:19,856 INFO L134 CoverageAnalysis]: Checked inductivity of 14 backedges. 0 proven. 7 refuted. 0 times theorem prover too weak. 7 trivial. 0 not checked. [2018-11-14 19:17:19,878 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-14 19:17:19,878 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 13] total 23 [2018-11-14 19:17:19,878 INFO L78 Accepts]: Start accepts. Automaton has 23 states. Word has length 30 [2018-11-14 19:17:19,879 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 19:17:19,879 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 23 states. [2018-11-14 19:17:19,936 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 47 edges. 47 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:17:19,937 INFO L459 AbstractCegarLoop]: Interpolant automaton has 23 states [2018-11-14 19:17:19,937 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 23 interpolants. [2018-11-14 19:17:19,937 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=72, Invalid=434, Unknown=0, NotChecked=0, Total=506 [2018-11-14 19:17:19,938 INFO L87 Difference]: Start difference. First operand 49 states and 54 transitions. Second operand 23 states. [2018-11-14 19:17:23,617 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:17:23,617 INFO L93 Difference]: Finished difference Result 115 states and 127 transitions. [2018-11-14 19:17:23,618 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 22 states. [2018-11-14 19:17:23,618 INFO L78 Accepts]: Start accepts. Automaton has 23 states. Word has length 30 [2018-11-14 19:17:23,618 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 19:17:23,618 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 23 states. [2018-11-14 19:17:23,622 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 22 states to 22 states and 95 transitions. [2018-11-14 19:17:23,623 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 23 states. [2018-11-14 19:17:23,626 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 22 states to 22 states and 95 transitions. [2018-11-14 19:17:23,627 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 22 states and 95 transitions. [2018-11-14 19:17:23,832 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 95 edges. 95 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:17:23,840 INFO L225 Difference]: With dead ends: 115 [2018-11-14 19:17:23,840 INFO L226 Difference]: Without dead ends: 96 [2018-11-14 19:17:23,841 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 55 GetRequests, 22 SyntacticMatches, 1 SemanticMatches, 32 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 199 ImplicationChecksByTransitivity, 1.2s TimeCoverageRelationStatistics Valid=176, Invalid=946, Unknown=0, NotChecked=0, Total=1122 [2018-11-14 19:17:23,842 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 96 states. [2018-11-14 19:17:24,058 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 96 to 52. [2018-11-14 19:17:24,058 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 19:17:24,059 INFO L82 GeneralOperation]: Start isEquivalent. First operand 96 states. Second operand 52 states. [2018-11-14 19:17:24,059 INFO L74 IsIncluded]: Start isIncluded. First operand 96 states. Second operand 52 states. [2018-11-14 19:17:24,059 INFO L87 Difference]: Start difference. First operand 96 states. Second operand 52 states. [2018-11-14 19:17:24,064 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:17:24,064 INFO L93 Difference]: Finished difference Result 96 states and 106 transitions. [2018-11-14 19:17:24,065 INFO L276 IsEmpty]: Start isEmpty. Operand 96 states and 106 transitions. [2018-11-14 19:17:24,066 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:17:24,066 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:17:24,066 INFO L74 IsIncluded]: Start isIncluded. First operand 52 states. Second operand 96 states. [2018-11-14 19:17:24,066 INFO L87 Difference]: Start difference. First operand 52 states. Second operand 96 states. [2018-11-14 19:17:24,071 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:17:24,071 INFO L93 Difference]: Finished difference Result 96 states and 106 transitions. [2018-11-14 19:17:24,071 INFO L276 IsEmpty]: Start isEmpty. Operand 96 states and 106 transitions. [2018-11-14 19:17:24,073 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:17:24,073 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:17:24,073 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 19:17:24,073 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 19:17:24,073 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 52 states. [2018-11-14 19:17:24,075 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 52 states to 52 states and 57 transitions. [2018-11-14 19:17:24,076 INFO L78 Accepts]: Start accepts. Automaton has 52 states and 57 transitions. Word has length 30 [2018-11-14 19:17:24,076 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 19:17:24,076 INFO L480 AbstractCegarLoop]: Abstraction has 52 states and 57 transitions. [2018-11-14 19:17:24,076 INFO L481 AbstractCegarLoop]: Interpolant automaton has 23 states. [2018-11-14 19:17:24,076 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 57 transitions. [2018-11-14 19:17:24,077 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 34 [2018-11-14 19:17:24,077 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:17:24,078 INFO L375 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 19:17:24,078 INFO L423 AbstractCegarLoop]: === Iteration 6 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:17:24,078 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:17:24,078 INFO L82 PathProgramCache]: Analyzing trace with hash 1011030201, now seen corresponding path program 1 times [2018-11-14 19:17:24,079 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:17:24,079 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:17:24,080 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:17:24,080 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-14 19:17:24,080 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:17:24,097 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:17:24,317 INFO L256 TraceCheckUtils]: 0: Hoare triple {1493#true} call ULTIMATE.init(); {1493#true} is VALID [2018-11-14 19:17:24,317 INFO L273 TraceCheckUtils]: 1: Hoare triple {1493#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {1493#true} is VALID [2018-11-14 19:17:24,317 INFO L273 TraceCheckUtils]: 2: Hoare triple {1493#true} assume true; {1493#true} is VALID [2018-11-14 19:17:24,318 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1493#true} {1493#true} #66#return; {1493#true} is VALID [2018-11-14 19:17:24,318 INFO L256 TraceCheckUtils]: 4: Hoare triple {1493#true} call #t~ret10 := main(); {1493#true} is VALID [2018-11-14 19:17:24,319 INFO L273 TraceCheckUtils]: 5: Hoare triple {1493#true} ~MAX~0 := (if #t~nondet0 % 4294967296 % 4294967296 <= 2147483647 then #t~nondet0 % 4294967296 % 4294967296 else #t~nondet0 % 4294967296 % 4294967296 - 4294967296);havoc #t~nondet0;call ~#str1~0.base, ~#str1~0.offset := #Ultimate.alloc(~MAX~0 * 1);call ~#str2~0.base, ~#str2~0.offset := #Ultimate.alloc(~MAX~0 * 1);havoc ~cont~0;havoc ~i~0;havoc ~j~0;~cont~0 := 0;~i~0 := 0; {1493#true} is VALID [2018-11-14 19:17:24,319 INFO L273 TraceCheckUtils]: 6: Hoare triple {1493#true} assume true; {1493#true} is VALID [2018-11-14 19:17:24,319 INFO L273 TraceCheckUtils]: 7: Hoare triple {1493#true} assume !!(~i~0 < ~MAX~0);assume -128 <= #t~nondet2 && #t~nondet2 <= 127;call write~int(#t~nondet2, ~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);havoc #t~nondet2; {1493#true} is VALID [2018-11-14 19:17:24,320 INFO L273 TraceCheckUtils]: 8: Hoare triple {1493#true} #t~post1 := ~i~0;~i~0 := #t~post1 + 1;havoc #t~post1; {1493#true} is VALID [2018-11-14 19:17:24,320 INFO L273 TraceCheckUtils]: 9: Hoare triple {1493#true} assume true; {1493#true} is VALID [2018-11-14 19:17:24,320 INFO L273 TraceCheckUtils]: 10: Hoare triple {1493#true} assume !(~i~0 < ~MAX~0); {1493#true} is VALID [2018-11-14 19:17:24,322 INFO L273 TraceCheckUtils]: 11: Hoare triple {1493#true} call write~int(0, ~#str1~0.base, ~#str1~0.offset + (~MAX~0 - 1) * 1, 1);~j~0 := 0;~i~0 := ~MAX~0 - 1; {1495#(<= main_~MAX~0 (+ main_~i~0 1))} is VALID [2018-11-14 19:17:24,322 INFO L273 TraceCheckUtils]: 12: Hoare triple {1495#(<= main_~MAX~0 (+ main_~i~0 1))} assume true; {1495#(<= main_~MAX~0 (+ main_~i~0 1))} is VALID [2018-11-14 19:17:24,324 INFO L273 TraceCheckUtils]: 13: Hoare triple {1495#(<= main_~MAX~0 (+ main_~i~0 1))} assume !!(~i~0 >= 0);call #t~mem4 := read~int(~#str1~0.base, ~#str1~0.offset + 0, 1);call write~int(#t~mem4, ~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1);havoc #t~mem4;#t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1495#(<= main_~MAX~0 (+ main_~i~0 1))} is VALID [2018-11-14 19:17:24,324 INFO L273 TraceCheckUtils]: 14: Hoare triple {1495#(<= main_~MAX~0 (+ main_~i~0 1))} #t~post3 := ~i~0;~i~0 := #t~post3 - 1;havoc #t~post3; {1496#(<= main_~MAX~0 (+ main_~i~0 2))} is VALID [2018-11-14 19:17:24,326 INFO L273 TraceCheckUtils]: 15: Hoare triple {1496#(<= main_~MAX~0 (+ main_~i~0 2))} assume true; {1496#(<= main_~MAX~0 (+ main_~i~0 2))} is VALID [2018-11-14 19:17:24,326 INFO L273 TraceCheckUtils]: 16: Hoare triple {1496#(<= main_~MAX~0 (+ main_~i~0 2))} assume !(~i~0 >= 0); {1497#(<= main_~MAX~0 1)} is VALID [2018-11-14 19:17:24,328 INFO L273 TraceCheckUtils]: 17: Hoare triple {1497#(<= main_~MAX~0 1)} ~j~0 := ~MAX~0 - 1;~i~0 := 0; {1498#(and (<= main_~MAX~0 1) (= main_~i~0 0))} is VALID [2018-11-14 19:17:24,328 INFO L273 TraceCheckUtils]: 18: Hoare triple {1498#(and (<= main_~MAX~0 1) (= main_~i~0 0))} assume true; {1498#(and (<= main_~MAX~0 1) (= main_~i~0 0))} is VALID [2018-11-14 19:17:24,330 INFO L273 TraceCheckUtils]: 19: Hoare triple {1498#(and (<= main_~MAX~0 1) (= main_~i~0 0))} assume !!(~i~0 < ~MAX~0);call #t~mem7 := read~int(~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);call #t~mem8 := read~int(~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1); {1498#(and (<= main_~MAX~0 1) (= main_~i~0 0))} is VALID [2018-11-14 19:17:24,330 INFO L256 TraceCheckUtils]: 20: Hoare triple {1498#(and (<= main_~MAX~0 1) (= main_~i~0 0))} call __VERIFIER_assert((if #t~mem7 == #t~mem8 then 1 else 0)); {1493#true} is VALID [2018-11-14 19:17:24,330 INFO L273 TraceCheckUtils]: 21: Hoare triple {1493#true} ~cond := #in~cond; {1493#true} is VALID [2018-11-14 19:17:24,330 INFO L273 TraceCheckUtils]: 22: Hoare triple {1493#true} assume !(~cond == 0); {1493#true} is VALID [2018-11-14 19:17:24,330 INFO L273 TraceCheckUtils]: 23: Hoare triple {1493#true} assume true; {1493#true} is VALID [2018-11-14 19:17:24,331 INFO L268 TraceCheckUtils]: 24: Hoare quadruple {1493#true} {1498#(and (<= main_~MAX~0 1) (= main_~i~0 0))} #70#return; {1498#(and (<= main_~MAX~0 1) (= main_~i~0 0))} is VALID [2018-11-14 19:17:24,331 INFO L273 TraceCheckUtils]: 25: Hoare triple {1498#(and (<= main_~MAX~0 1) (= main_~i~0 0))} havoc #t~mem7;havoc #t~mem8;#t~post9 := ~j~0;~j~0 := #t~post9 - 1;havoc #t~post9; {1498#(and (<= main_~MAX~0 1) (= main_~i~0 0))} is VALID [2018-11-14 19:17:24,332 INFO L273 TraceCheckUtils]: 26: Hoare triple {1498#(and (<= main_~MAX~0 1) (= main_~i~0 0))} #t~post6 := ~i~0;~i~0 := #t~post6 + 1;havoc #t~post6; {1499#(<= main_~MAX~0 main_~i~0)} is VALID [2018-11-14 19:17:24,332 INFO L273 TraceCheckUtils]: 27: Hoare triple {1499#(<= main_~MAX~0 main_~i~0)} assume true; {1499#(<= main_~MAX~0 main_~i~0)} is VALID [2018-11-14 19:17:24,333 INFO L273 TraceCheckUtils]: 28: Hoare triple {1499#(<= main_~MAX~0 main_~i~0)} assume !!(~i~0 < ~MAX~0);call #t~mem7 := read~int(~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);call #t~mem8 := read~int(~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1); {1494#false} is VALID [2018-11-14 19:17:24,333 INFO L256 TraceCheckUtils]: 29: Hoare triple {1494#false} call __VERIFIER_assert((if #t~mem7 == #t~mem8 then 1 else 0)); {1494#false} is VALID [2018-11-14 19:17:24,333 INFO L273 TraceCheckUtils]: 30: Hoare triple {1494#false} ~cond := #in~cond; {1494#false} is VALID [2018-11-14 19:17:24,333 INFO L273 TraceCheckUtils]: 31: Hoare triple {1494#false} assume ~cond == 0; {1494#false} is VALID [2018-11-14 19:17:24,334 INFO L273 TraceCheckUtils]: 32: Hoare triple {1494#false} assume !false; {1494#false} is VALID [2018-11-14 19:17:24,335 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 3 proven. 4 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2018-11-14 19:17:24,335 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-14 19:17:24,335 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP 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 [2018-11-14 19:17:24,344 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 19:17:24,373 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:17:24,386 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:17:24,387 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-14 19:17:24,499 INFO L256 TraceCheckUtils]: 0: Hoare triple {1493#true} call ULTIMATE.init(); {1493#true} is VALID [2018-11-14 19:17:24,500 INFO L273 TraceCheckUtils]: 1: Hoare triple {1493#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {1493#true} is VALID [2018-11-14 19:17:24,500 INFO L273 TraceCheckUtils]: 2: Hoare triple {1493#true} assume true; {1493#true} is VALID [2018-11-14 19:17:24,500 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1493#true} {1493#true} #66#return; {1493#true} is VALID [2018-11-14 19:17:24,501 INFO L256 TraceCheckUtils]: 4: Hoare triple {1493#true} call #t~ret10 := main(); {1493#true} is VALID [2018-11-14 19:17:24,502 INFO L273 TraceCheckUtils]: 5: Hoare triple {1493#true} ~MAX~0 := (if #t~nondet0 % 4294967296 % 4294967296 <= 2147483647 then #t~nondet0 % 4294967296 % 4294967296 else #t~nondet0 % 4294967296 % 4294967296 - 4294967296);havoc #t~nondet0;call ~#str1~0.base, ~#str1~0.offset := #Ultimate.alloc(~MAX~0 * 1);call ~#str2~0.base, ~#str2~0.offset := #Ultimate.alloc(~MAX~0 * 1);havoc ~cont~0;havoc ~i~0;havoc ~j~0;~cont~0 := 0;~i~0 := 0; {1518#(<= main_~i~0 0)} is VALID [2018-11-14 19:17:24,502 INFO L273 TraceCheckUtils]: 6: Hoare triple {1518#(<= main_~i~0 0)} assume true; {1518#(<= main_~i~0 0)} is VALID [2018-11-14 19:17:24,507 INFO L273 TraceCheckUtils]: 7: Hoare triple {1518#(<= main_~i~0 0)} assume !!(~i~0 < ~MAX~0);assume -128 <= #t~nondet2 && #t~nondet2 <= 127;call write~int(#t~nondet2, ~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);havoc #t~nondet2; {1518#(<= main_~i~0 0)} is VALID [2018-11-14 19:17:24,508 INFO L273 TraceCheckUtils]: 8: Hoare triple {1518#(<= main_~i~0 0)} #t~post1 := ~i~0;~i~0 := #t~post1 + 1;havoc #t~post1; {1528#(<= main_~i~0 1)} is VALID [2018-11-14 19:17:24,509 INFO L273 TraceCheckUtils]: 9: Hoare triple {1528#(<= main_~i~0 1)} assume true; {1528#(<= main_~i~0 1)} is VALID [2018-11-14 19:17:24,509 INFO L273 TraceCheckUtils]: 10: Hoare triple {1528#(<= main_~i~0 1)} assume !(~i~0 < ~MAX~0); {1497#(<= main_~MAX~0 1)} is VALID [2018-11-14 19:17:24,509 INFO L273 TraceCheckUtils]: 11: Hoare triple {1497#(<= main_~MAX~0 1)} call write~int(0, ~#str1~0.base, ~#str1~0.offset + (~MAX~0 - 1) * 1, 1);~j~0 := 0;~i~0 := ~MAX~0 - 1; {1497#(<= main_~MAX~0 1)} is VALID [2018-11-14 19:17:24,510 INFO L273 TraceCheckUtils]: 12: Hoare triple {1497#(<= main_~MAX~0 1)} assume true; {1497#(<= main_~MAX~0 1)} is VALID [2018-11-14 19:17:24,510 INFO L273 TraceCheckUtils]: 13: Hoare triple {1497#(<= main_~MAX~0 1)} assume !!(~i~0 >= 0);call #t~mem4 := read~int(~#str1~0.base, ~#str1~0.offset + 0, 1);call write~int(#t~mem4, ~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1);havoc #t~mem4;#t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1497#(<= main_~MAX~0 1)} is VALID [2018-11-14 19:17:24,510 INFO L273 TraceCheckUtils]: 14: Hoare triple {1497#(<= main_~MAX~0 1)} #t~post3 := ~i~0;~i~0 := #t~post3 - 1;havoc #t~post3; {1497#(<= main_~MAX~0 1)} is VALID [2018-11-14 19:17:24,511 INFO L273 TraceCheckUtils]: 15: Hoare triple {1497#(<= main_~MAX~0 1)} assume true; {1497#(<= main_~MAX~0 1)} is VALID [2018-11-14 19:17:24,511 INFO L273 TraceCheckUtils]: 16: Hoare triple {1497#(<= main_~MAX~0 1)} assume !(~i~0 >= 0); {1497#(<= main_~MAX~0 1)} is VALID [2018-11-14 19:17:24,512 INFO L273 TraceCheckUtils]: 17: Hoare triple {1497#(<= main_~MAX~0 1)} ~j~0 := ~MAX~0 - 1;~i~0 := 0; {1556#(and (<= 0 main_~i~0) (<= main_~MAX~0 1))} is VALID [2018-11-14 19:17:24,513 INFO L273 TraceCheckUtils]: 18: Hoare triple {1556#(and (<= 0 main_~i~0) (<= main_~MAX~0 1))} assume true; {1556#(and (<= 0 main_~i~0) (<= main_~MAX~0 1))} is VALID [2018-11-14 19:17:24,514 INFO L273 TraceCheckUtils]: 19: Hoare triple {1556#(and (<= 0 main_~i~0) (<= main_~MAX~0 1))} assume !!(~i~0 < ~MAX~0);call #t~mem7 := read~int(~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);call #t~mem8 := read~int(~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1); {1556#(and (<= 0 main_~i~0) (<= main_~MAX~0 1))} is VALID [2018-11-14 19:17:24,514 INFO L256 TraceCheckUtils]: 20: Hoare triple {1556#(and (<= 0 main_~i~0) (<= main_~MAX~0 1))} call __VERIFIER_assert((if #t~mem7 == #t~mem8 then 1 else 0)); {1493#true} is VALID [2018-11-14 19:17:24,514 INFO L273 TraceCheckUtils]: 21: Hoare triple {1493#true} ~cond := #in~cond; {1493#true} is VALID [2018-11-14 19:17:24,514 INFO L273 TraceCheckUtils]: 22: Hoare triple {1493#true} assume !(~cond == 0); {1493#true} is VALID [2018-11-14 19:17:24,515 INFO L273 TraceCheckUtils]: 23: Hoare triple {1493#true} assume true; {1493#true} is VALID [2018-11-14 19:17:24,516 INFO L268 TraceCheckUtils]: 24: Hoare quadruple {1493#true} {1556#(and (<= 0 main_~i~0) (<= main_~MAX~0 1))} #70#return; {1556#(and (<= 0 main_~i~0) (<= main_~MAX~0 1))} is VALID [2018-11-14 19:17:24,516 INFO L273 TraceCheckUtils]: 25: Hoare triple {1556#(and (<= 0 main_~i~0) (<= main_~MAX~0 1))} havoc #t~mem7;havoc #t~mem8;#t~post9 := ~j~0;~j~0 := #t~post9 - 1;havoc #t~post9; {1556#(and (<= 0 main_~i~0) (<= main_~MAX~0 1))} is VALID [2018-11-14 19:17:24,518 INFO L273 TraceCheckUtils]: 26: Hoare triple {1556#(and (<= 0 main_~i~0) (<= main_~MAX~0 1))} #t~post6 := ~i~0;~i~0 := #t~post6 + 1;havoc #t~post6; {1584#(and (<= 1 main_~i~0) (<= main_~MAX~0 1))} is VALID [2018-11-14 19:17:24,518 INFO L273 TraceCheckUtils]: 27: Hoare triple {1584#(and (<= 1 main_~i~0) (<= main_~MAX~0 1))} assume true; {1584#(and (<= 1 main_~i~0) (<= main_~MAX~0 1))} is VALID [2018-11-14 19:17:24,519 INFO L273 TraceCheckUtils]: 28: Hoare triple {1584#(and (<= 1 main_~i~0) (<= main_~MAX~0 1))} assume !!(~i~0 < ~MAX~0);call #t~mem7 := read~int(~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);call #t~mem8 := read~int(~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1); {1494#false} is VALID [2018-11-14 19:17:24,520 INFO L256 TraceCheckUtils]: 29: Hoare triple {1494#false} call __VERIFIER_assert((if #t~mem7 == #t~mem8 then 1 else 0)); {1494#false} is VALID [2018-11-14 19:17:24,520 INFO L273 TraceCheckUtils]: 30: Hoare triple {1494#false} ~cond := #in~cond; {1494#false} is VALID [2018-11-14 19:17:24,520 INFO L273 TraceCheckUtils]: 31: Hoare triple {1494#false} assume ~cond == 0; {1494#false} is VALID [2018-11-14 19:17:24,521 INFO L273 TraceCheckUtils]: 32: Hoare triple {1494#false} assume !false; {1494#false} is VALID [2018-11-14 19:17:24,523 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 5 proven. 2 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2018-11-14 19:17:24,552 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-14 19:17:24,553 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 7] total 11 [2018-11-14 19:17:24,553 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 33 [2018-11-14 19:17:24,553 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 19:17:24,554 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states. [2018-11-14 19:17:24,615 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 52 edges. 52 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:17:24,615 INFO L459 AbstractCegarLoop]: Interpolant automaton has 11 states [2018-11-14 19:17:24,615 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2018-11-14 19:17:24,616 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=37, Invalid=73, Unknown=0, NotChecked=0, Total=110 [2018-11-14 19:17:24,616 INFO L87 Difference]: Start difference. First operand 52 states and 57 transitions. Second operand 11 states. [2018-11-14 19:17:25,304 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:17:25,305 INFO L93 Difference]: Finished difference Result 82 states and 90 transitions. [2018-11-14 19:17:25,305 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 12 states. [2018-11-14 19:17:25,305 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 33 [2018-11-14 19:17:25,305 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 19:17:25,305 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2018-11-14 19:17:25,308 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 79 transitions. [2018-11-14 19:17:25,308 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2018-11-14 19:17:25,310 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 79 transitions. [2018-11-14 19:17:25,311 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states and 79 transitions. [2018-11-14 19:17:25,395 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 79 edges. 79 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:17:25,397 INFO L225 Difference]: With dead ends: 82 [2018-11-14 19:17:25,398 INFO L226 Difference]: Without dead ends: 57 [2018-11-14 19:17:25,398 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 43 GetRequests, 30 SyntacticMatches, 0 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 31 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=70, Invalid=140, Unknown=0, NotChecked=0, Total=210 [2018-11-14 19:17:25,399 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 57 states. [2018-11-14 19:17:25,586 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 57 to 46. [2018-11-14 19:17:25,586 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 19:17:25,586 INFO L82 GeneralOperation]: Start isEquivalent. First operand 57 states. Second operand 46 states. [2018-11-14 19:17:25,586 INFO L74 IsIncluded]: Start isIncluded. First operand 57 states. Second operand 46 states. [2018-11-14 19:17:25,587 INFO L87 Difference]: Start difference. First operand 57 states. Second operand 46 states. [2018-11-14 19:17:25,589 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:17:25,589 INFO L93 Difference]: Finished difference Result 57 states and 62 transitions. [2018-11-14 19:17:25,590 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 62 transitions. [2018-11-14 19:17:25,590 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:17:25,590 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:17:25,590 INFO L74 IsIncluded]: Start isIncluded. First operand 46 states. Second operand 57 states. [2018-11-14 19:17:25,590 INFO L87 Difference]: Start difference. First operand 46 states. Second operand 57 states. [2018-11-14 19:17:25,593 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:17:25,593 INFO L93 Difference]: Finished difference Result 57 states and 62 transitions. [2018-11-14 19:17:25,593 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 62 transitions. [2018-11-14 19:17:25,593 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:17:25,593 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:17:25,594 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 19:17:25,594 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 19:17:25,594 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 46 states. [2018-11-14 19:17:25,595 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 46 states to 46 states and 49 transitions. [2018-11-14 19:17:25,596 INFO L78 Accepts]: Start accepts. Automaton has 46 states and 49 transitions. Word has length 33 [2018-11-14 19:17:25,596 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 19:17:25,596 INFO L480 AbstractCegarLoop]: Abstraction has 46 states and 49 transitions. [2018-11-14 19:17:25,596 INFO L481 AbstractCegarLoop]: Interpolant automaton has 11 states. [2018-11-14 19:17:25,596 INFO L276 IsEmpty]: Start isEmpty. Operand 46 states and 49 transitions. [2018-11-14 19:17:25,597 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 34 [2018-11-14 19:17:25,597 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:17:25,597 INFO L375 BasicCegarLoop]: trace histogram [4, 3, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 19:17:25,597 INFO L423 AbstractCegarLoop]: === Iteration 7 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:17:25,598 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:17:25,598 INFO L82 PathProgramCache]: Analyzing trace with hash 1439664076, now seen corresponding path program 3 times [2018-11-14 19:17:25,598 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:17:25,598 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:17:25,599 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:17:25,599 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 19:17:25,599 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:17:25,619 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:17:25,743 INFO L256 TraceCheckUtils]: 0: Hoare triple {1898#true} call ULTIMATE.init(); {1898#true} is VALID [2018-11-14 19:17:25,744 INFO L273 TraceCheckUtils]: 1: Hoare triple {1898#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {1898#true} is VALID [2018-11-14 19:17:25,744 INFO L273 TraceCheckUtils]: 2: Hoare triple {1898#true} assume true; {1898#true} is VALID [2018-11-14 19:17:25,744 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1898#true} {1898#true} #66#return; {1898#true} is VALID [2018-11-14 19:17:25,745 INFO L256 TraceCheckUtils]: 4: Hoare triple {1898#true} call #t~ret10 := main(); {1898#true} is VALID [2018-11-14 19:17:25,745 INFO L273 TraceCheckUtils]: 5: Hoare triple {1898#true} ~MAX~0 := (if #t~nondet0 % 4294967296 % 4294967296 <= 2147483647 then #t~nondet0 % 4294967296 % 4294967296 else #t~nondet0 % 4294967296 % 4294967296 - 4294967296);havoc #t~nondet0;call ~#str1~0.base, ~#str1~0.offset := #Ultimate.alloc(~MAX~0 * 1);call ~#str2~0.base, ~#str2~0.offset := #Ultimate.alloc(~MAX~0 * 1);havoc ~cont~0;havoc ~i~0;havoc ~j~0;~cont~0 := 0;~i~0 := 0; {1900#(= main_~i~0 0)} is VALID [2018-11-14 19:17:25,746 INFO L273 TraceCheckUtils]: 6: Hoare triple {1900#(= main_~i~0 0)} assume true; {1900#(= main_~i~0 0)} is VALID [2018-11-14 19:17:25,747 INFO L273 TraceCheckUtils]: 7: Hoare triple {1900#(= main_~i~0 0)} assume !!(~i~0 < ~MAX~0);assume -128 <= #t~nondet2 && #t~nondet2 <= 127;call write~int(#t~nondet2, ~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);havoc #t~nondet2; {1900#(= main_~i~0 0)} is VALID [2018-11-14 19:17:25,747 INFO L273 TraceCheckUtils]: 8: Hoare triple {1900#(= main_~i~0 0)} #t~post1 := ~i~0;~i~0 := #t~post1 + 1;havoc #t~post1; {1901#(<= main_~i~0 1)} is VALID [2018-11-14 19:17:25,748 INFO L273 TraceCheckUtils]: 9: Hoare triple {1901#(<= main_~i~0 1)} assume true; {1901#(<= main_~i~0 1)} is VALID [2018-11-14 19:17:25,748 INFO L273 TraceCheckUtils]: 10: Hoare triple {1901#(<= main_~i~0 1)} assume !!(~i~0 < ~MAX~0);assume -128 <= #t~nondet2 && #t~nondet2 <= 127;call write~int(#t~nondet2, ~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);havoc #t~nondet2; {1901#(<= main_~i~0 1)} is VALID [2018-11-14 19:17:25,749 INFO L273 TraceCheckUtils]: 11: Hoare triple {1901#(<= main_~i~0 1)} #t~post1 := ~i~0;~i~0 := #t~post1 + 1;havoc #t~post1; {1902#(<= main_~i~0 2)} is VALID [2018-11-14 19:17:25,749 INFO L273 TraceCheckUtils]: 12: Hoare triple {1902#(<= main_~i~0 2)} assume true; {1902#(<= main_~i~0 2)} is VALID [2018-11-14 19:17:25,750 INFO L273 TraceCheckUtils]: 13: Hoare triple {1902#(<= main_~i~0 2)} assume !(~i~0 < ~MAX~0); {1903#(<= main_~MAX~0 2)} is VALID [2018-11-14 19:17:25,751 INFO L273 TraceCheckUtils]: 14: Hoare triple {1903#(<= main_~MAX~0 2)} call write~int(0, ~#str1~0.base, ~#str1~0.offset + (~MAX~0 - 1) * 1, 1);~j~0 := 0;~i~0 := ~MAX~0 - 1; {1901#(<= main_~i~0 1)} is VALID [2018-11-14 19:17:25,751 INFO L273 TraceCheckUtils]: 15: Hoare triple {1901#(<= main_~i~0 1)} assume true; {1901#(<= main_~i~0 1)} is VALID [2018-11-14 19:17:25,752 INFO L273 TraceCheckUtils]: 16: Hoare triple {1901#(<= main_~i~0 1)} assume !!(~i~0 >= 0);call #t~mem4 := read~int(~#str1~0.base, ~#str1~0.offset + 0, 1);call write~int(#t~mem4, ~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1);havoc #t~mem4;#t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1901#(<= main_~i~0 1)} is VALID [2018-11-14 19:17:25,753 INFO L273 TraceCheckUtils]: 17: Hoare triple {1901#(<= main_~i~0 1)} #t~post3 := ~i~0;~i~0 := #t~post3 - 1;havoc #t~post3; {1904#(<= main_~i~0 0)} is VALID [2018-11-14 19:17:25,753 INFO L273 TraceCheckUtils]: 18: Hoare triple {1904#(<= main_~i~0 0)} assume true; {1904#(<= main_~i~0 0)} is VALID [2018-11-14 19:17:25,755 INFO L273 TraceCheckUtils]: 19: Hoare triple {1904#(<= main_~i~0 0)} assume !!(~i~0 >= 0);call #t~mem4 := read~int(~#str1~0.base, ~#str1~0.offset + 0, 1);call write~int(#t~mem4, ~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1);havoc #t~mem4;#t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1904#(<= main_~i~0 0)} is VALID [2018-11-14 19:17:25,758 INFO L273 TraceCheckUtils]: 20: Hoare triple {1904#(<= main_~i~0 0)} #t~post3 := ~i~0;~i~0 := #t~post3 - 1;havoc #t~post3; {1905#(<= (+ main_~i~0 1) 0)} is VALID [2018-11-14 19:17:25,758 INFO L273 TraceCheckUtils]: 21: Hoare triple {1905#(<= (+ main_~i~0 1) 0)} assume true; {1905#(<= (+ main_~i~0 1) 0)} is VALID [2018-11-14 19:17:25,759 INFO L273 TraceCheckUtils]: 22: Hoare triple {1905#(<= (+ main_~i~0 1) 0)} assume !!(~i~0 >= 0);call #t~mem4 := read~int(~#str1~0.base, ~#str1~0.offset + 0, 1);call write~int(#t~mem4, ~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1);havoc #t~mem4;#t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1899#false} is VALID [2018-11-14 19:17:25,759 INFO L273 TraceCheckUtils]: 23: Hoare triple {1899#false} #t~post3 := ~i~0;~i~0 := #t~post3 - 1;havoc #t~post3; {1899#false} is VALID [2018-11-14 19:17:25,759 INFO L273 TraceCheckUtils]: 24: Hoare triple {1899#false} assume true; {1899#false} is VALID [2018-11-14 19:17:25,760 INFO L273 TraceCheckUtils]: 25: Hoare triple {1899#false} assume !(~i~0 >= 0); {1899#false} is VALID [2018-11-14 19:17:25,760 INFO L273 TraceCheckUtils]: 26: Hoare triple {1899#false} ~j~0 := ~MAX~0 - 1;~i~0 := 0; {1899#false} is VALID [2018-11-14 19:17:25,760 INFO L273 TraceCheckUtils]: 27: Hoare triple {1899#false} assume true; {1899#false} is VALID [2018-11-14 19:17:25,760 INFO L273 TraceCheckUtils]: 28: Hoare triple {1899#false} assume !!(~i~0 < ~MAX~0);call #t~mem7 := read~int(~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);call #t~mem8 := read~int(~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1); {1899#false} is VALID [2018-11-14 19:17:25,760 INFO L256 TraceCheckUtils]: 29: Hoare triple {1899#false} call __VERIFIER_assert((if #t~mem7 == #t~mem8 then 1 else 0)); {1899#false} is VALID [2018-11-14 19:17:25,761 INFO L273 TraceCheckUtils]: 30: Hoare triple {1899#false} ~cond := #in~cond; {1899#false} is VALID [2018-11-14 19:17:25,761 INFO L273 TraceCheckUtils]: 31: Hoare triple {1899#false} assume ~cond == 0; {1899#false} is VALID [2018-11-14 19:17:25,761 INFO L273 TraceCheckUtils]: 32: Hoare triple {1899#false} assume !false; {1899#false} is VALID [2018-11-14 19:17:25,762 INFO L134 CoverageAnalysis]: Checked inductivity of 22 backedges. 15 proven. 7 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 19:17:25,762 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-14 19:17:25,762 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP 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 [2018-11-14 19:17:25,772 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2018-11-14 19:17:25,802 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 4 check-sat command(s) [2018-11-14 19:17:25,802 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-14 19:17:25,828 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:17:25,829 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-14 19:17:25,994 INFO L256 TraceCheckUtils]: 0: Hoare triple {1898#true} call ULTIMATE.init(); {1898#true} is VALID [2018-11-14 19:17:25,994 INFO L273 TraceCheckUtils]: 1: Hoare triple {1898#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {1898#true} is VALID [2018-11-14 19:17:25,994 INFO L273 TraceCheckUtils]: 2: Hoare triple {1898#true} assume true; {1898#true} is VALID [2018-11-14 19:17:25,994 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1898#true} {1898#true} #66#return; {1898#true} is VALID [2018-11-14 19:17:25,995 INFO L256 TraceCheckUtils]: 4: Hoare triple {1898#true} call #t~ret10 := main(); {1898#true} is VALID [2018-11-14 19:17:25,999 INFO L273 TraceCheckUtils]: 5: Hoare triple {1898#true} ~MAX~0 := (if #t~nondet0 % 4294967296 % 4294967296 <= 2147483647 then #t~nondet0 % 4294967296 % 4294967296 else #t~nondet0 % 4294967296 % 4294967296 - 4294967296);havoc #t~nondet0;call ~#str1~0.base, ~#str1~0.offset := #Ultimate.alloc(~MAX~0 * 1);call ~#str2~0.base, ~#str2~0.offset := #Ultimate.alloc(~MAX~0 * 1);havoc ~cont~0;havoc ~i~0;havoc ~j~0;~cont~0 := 0;~i~0 := 0; {1904#(<= main_~i~0 0)} is VALID [2018-11-14 19:17:25,999 INFO L273 TraceCheckUtils]: 6: Hoare triple {1904#(<= main_~i~0 0)} assume true; {1904#(<= main_~i~0 0)} is VALID [2018-11-14 19:17:25,999 INFO L273 TraceCheckUtils]: 7: Hoare triple {1904#(<= main_~i~0 0)} assume !!(~i~0 < ~MAX~0);assume -128 <= #t~nondet2 && #t~nondet2 <= 127;call write~int(#t~nondet2, ~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);havoc #t~nondet2; {1904#(<= main_~i~0 0)} is VALID [2018-11-14 19:17:26,000 INFO L273 TraceCheckUtils]: 8: Hoare triple {1904#(<= main_~i~0 0)} #t~post1 := ~i~0;~i~0 := #t~post1 + 1;havoc #t~post1; {1901#(<= main_~i~0 1)} is VALID [2018-11-14 19:17:26,000 INFO L273 TraceCheckUtils]: 9: Hoare triple {1901#(<= main_~i~0 1)} assume true; {1901#(<= main_~i~0 1)} is VALID [2018-11-14 19:17:26,001 INFO L273 TraceCheckUtils]: 10: Hoare triple {1901#(<= main_~i~0 1)} assume !!(~i~0 < ~MAX~0);assume -128 <= #t~nondet2 && #t~nondet2 <= 127;call write~int(#t~nondet2, ~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);havoc #t~nondet2; {1901#(<= main_~i~0 1)} is VALID [2018-11-14 19:17:26,001 INFO L273 TraceCheckUtils]: 11: Hoare triple {1901#(<= main_~i~0 1)} #t~post1 := ~i~0;~i~0 := #t~post1 + 1;havoc #t~post1; {1902#(<= main_~i~0 2)} is VALID [2018-11-14 19:17:26,002 INFO L273 TraceCheckUtils]: 12: Hoare triple {1902#(<= main_~i~0 2)} assume true; {1902#(<= main_~i~0 2)} is VALID [2018-11-14 19:17:26,002 INFO L273 TraceCheckUtils]: 13: Hoare triple {1902#(<= main_~i~0 2)} assume !(~i~0 < ~MAX~0); {1903#(<= main_~MAX~0 2)} is VALID [2018-11-14 19:17:26,003 INFO L273 TraceCheckUtils]: 14: Hoare triple {1903#(<= main_~MAX~0 2)} call write~int(0, ~#str1~0.base, ~#str1~0.offset + (~MAX~0 - 1) * 1, 1);~j~0 := 0;~i~0 := ~MAX~0 - 1; {1901#(<= main_~i~0 1)} is VALID [2018-11-14 19:17:26,004 INFO L273 TraceCheckUtils]: 15: Hoare triple {1901#(<= main_~i~0 1)} assume true; {1901#(<= main_~i~0 1)} is VALID [2018-11-14 19:17:26,004 INFO L273 TraceCheckUtils]: 16: Hoare triple {1901#(<= main_~i~0 1)} assume !!(~i~0 >= 0);call #t~mem4 := read~int(~#str1~0.base, ~#str1~0.offset + 0, 1);call write~int(#t~mem4, ~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1);havoc #t~mem4;#t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1901#(<= main_~i~0 1)} is VALID [2018-11-14 19:17:26,005 INFO L273 TraceCheckUtils]: 17: Hoare triple {1901#(<= main_~i~0 1)} #t~post3 := ~i~0;~i~0 := #t~post3 - 1;havoc #t~post3; {1904#(<= main_~i~0 0)} is VALID [2018-11-14 19:17:26,006 INFO L273 TraceCheckUtils]: 18: Hoare triple {1904#(<= main_~i~0 0)} assume true; {1904#(<= main_~i~0 0)} is VALID [2018-11-14 19:17:26,006 INFO L273 TraceCheckUtils]: 19: Hoare triple {1904#(<= main_~i~0 0)} assume !!(~i~0 >= 0);call #t~mem4 := read~int(~#str1~0.base, ~#str1~0.offset + 0, 1);call write~int(#t~mem4, ~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1);havoc #t~mem4;#t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1904#(<= main_~i~0 0)} is VALID [2018-11-14 19:17:26,008 INFO L273 TraceCheckUtils]: 20: Hoare triple {1904#(<= main_~i~0 0)} #t~post3 := ~i~0;~i~0 := #t~post3 - 1;havoc #t~post3; {1905#(<= (+ main_~i~0 1) 0)} is VALID [2018-11-14 19:17:26,008 INFO L273 TraceCheckUtils]: 21: Hoare triple {1905#(<= (+ main_~i~0 1) 0)} assume true; {1905#(<= (+ main_~i~0 1) 0)} is VALID [2018-11-14 19:17:26,009 INFO L273 TraceCheckUtils]: 22: Hoare triple {1905#(<= (+ main_~i~0 1) 0)} assume !!(~i~0 >= 0);call #t~mem4 := read~int(~#str1~0.base, ~#str1~0.offset + 0, 1);call write~int(#t~mem4, ~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1);havoc #t~mem4;#t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1899#false} is VALID [2018-11-14 19:17:26,010 INFO L273 TraceCheckUtils]: 23: Hoare triple {1899#false} #t~post3 := ~i~0;~i~0 := #t~post3 - 1;havoc #t~post3; {1899#false} is VALID [2018-11-14 19:17:26,010 INFO L273 TraceCheckUtils]: 24: Hoare triple {1899#false} assume true; {1899#false} is VALID [2018-11-14 19:17:26,010 INFO L273 TraceCheckUtils]: 25: Hoare triple {1899#false} assume !(~i~0 >= 0); {1899#false} is VALID [2018-11-14 19:17:26,011 INFO L273 TraceCheckUtils]: 26: Hoare triple {1899#false} ~j~0 := ~MAX~0 - 1;~i~0 := 0; {1899#false} is VALID [2018-11-14 19:17:26,011 INFO L273 TraceCheckUtils]: 27: Hoare triple {1899#false} assume true; {1899#false} is VALID [2018-11-14 19:17:26,011 INFO L273 TraceCheckUtils]: 28: Hoare triple {1899#false} assume !!(~i~0 < ~MAX~0);call #t~mem7 := read~int(~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);call #t~mem8 := read~int(~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1); {1899#false} is VALID [2018-11-14 19:17:26,012 INFO L256 TraceCheckUtils]: 29: Hoare triple {1899#false} call __VERIFIER_assert((if #t~mem7 == #t~mem8 then 1 else 0)); {1899#false} is VALID [2018-11-14 19:17:26,012 INFO L273 TraceCheckUtils]: 30: Hoare triple {1899#false} ~cond := #in~cond; {1899#false} is VALID [2018-11-14 19:17:26,012 INFO L273 TraceCheckUtils]: 31: Hoare triple {1899#false} assume ~cond == 0; {1899#false} is VALID [2018-11-14 19:17:26,013 INFO L273 TraceCheckUtils]: 32: Hoare triple {1899#false} assume !false; {1899#false} is VALID [2018-11-14 19:17:26,014 INFO L134 CoverageAnalysis]: Checked inductivity of 22 backedges. 15 proven. 7 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 19:17:26,043 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-14 19:17:26,043 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 7] total 8 [2018-11-14 19:17:26,044 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 33 [2018-11-14 19:17:26,044 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 19:17:26,044 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2018-11-14 19:17:26,111 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 37 edges. 37 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:17:26,111 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2018-11-14 19:17:26,111 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2018-11-14 19:17:26,111 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=22, Invalid=34, Unknown=0, NotChecked=0, Total=56 [2018-11-14 19:17:26,112 INFO L87 Difference]: Start difference. First operand 46 states and 49 transitions. Second operand 8 states. [2018-11-14 19:17:26,889 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:17:26,889 INFO L93 Difference]: Finished difference Result 102 states and 113 transitions. [2018-11-14 19:17:26,889 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2018-11-14 19:17:26,889 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 33 [2018-11-14 19:17:26,889 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 19:17:26,890 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2018-11-14 19:17:26,892 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 96 transitions. [2018-11-14 19:17:26,892 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2018-11-14 19:17:26,895 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 96 transitions. [2018-11-14 19:17:26,895 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states and 96 transitions. [2018-11-14 19:17:26,997 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 96 edges. 96 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:17:26,999 INFO L225 Difference]: With dead ends: 102 [2018-11-14 19:17:27,002 INFO L226 Difference]: Without dead ends: 87 [2018-11-14 19:17:27,002 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 46 GetRequests, 35 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=60, Invalid=96, Unknown=0, NotChecked=0, Total=156 [2018-11-14 19:17:27,003 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 87 states. [2018-11-14 19:17:27,126 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 87 to 58. [2018-11-14 19:17:27,127 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 19:17:27,127 INFO L82 GeneralOperation]: Start isEquivalent. First operand 87 states. Second operand 58 states. [2018-11-14 19:17:27,127 INFO L74 IsIncluded]: Start isIncluded. First operand 87 states. Second operand 58 states. [2018-11-14 19:17:27,127 INFO L87 Difference]: Start difference. First operand 87 states. Second operand 58 states. [2018-11-14 19:17:27,131 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:17:27,131 INFO L93 Difference]: Finished difference Result 87 states and 96 transitions. [2018-11-14 19:17:27,131 INFO L276 IsEmpty]: Start isEmpty. Operand 87 states and 96 transitions. [2018-11-14 19:17:27,132 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:17:27,132 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:17:27,132 INFO L74 IsIncluded]: Start isIncluded. First operand 58 states. Second operand 87 states. [2018-11-14 19:17:27,132 INFO L87 Difference]: Start difference. First operand 58 states. Second operand 87 states. [2018-11-14 19:17:27,136 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:17:27,136 INFO L93 Difference]: Finished difference Result 87 states and 96 transitions. [2018-11-14 19:17:27,136 INFO L276 IsEmpty]: Start isEmpty. Operand 87 states and 96 transitions. [2018-11-14 19:17:27,137 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:17:27,137 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:17:27,137 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 19:17:27,137 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 19:17:27,137 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 58 states. [2018-11-14 19:17:27,139 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 58 states to 58 states and 62 transitions. [2018-11-14 19:17:27,139 INFO L78 Accepts]: Start accepts. Automaton has 58 states and 62 transitions. Word has length 33 [2018-11-14 19:17:27,139 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 19:17:27,140 INFO L480 AbstractCegarLoop]: Abstraction has 58 states and 62 transitions. [2018-11-14 19:17:27,140 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2018-11-14 19:17:27,140 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 62 transitions. [2018-11-14 19:17:27,141 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 37 [2018-11-14 19:17:27,141 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:17:27,141 INFO L375 BasicCegarLoop]: trace histogram [4, 4, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 19:17:27,141 INFO L423 AbstractCegarLoop]: === Iteration 8 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:17:27,141 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:17:27,141 INFO L82 PathProgramCache]: Analyzing trace with hash 144640967, now seen corresponding path program 4 times [2018-11-14 19:17:27,142 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:17:27,142 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:17:27,142 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:17:27,143 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-14 19:17:27,143 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:17:27,193 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:17:28,179 INFO L256 TraceCheckUtils]: 0: Hoare triple {2405#true} call ULTIMATE.init(); {2405#true} is VALID [2018-11-14 19:17:28,180 INFO L273 TraceCheckUtils]: 1: Hoare triple {2405#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {2405#true} is VALID [2018-11-14 19:17:28,180 INFO L273 TraceCheckUtils]: 2: Hoare triple {2405#true} assume true; {2405#true} is VALID [2018-11-14 19:17:28,180 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {2405#true} {2405#true} #66#return; {2405#true} is VALID [2018-11-14 19:17:28,181 INFO L256 TraceCheckUtils]: 4: Hoare triple {2405#true} call #t~ret10 := main(); {2405#true} is VALID [2018-11-14 19:17:28,182 INFO L273 TraceCheckUtils]: 5: Hoare triple {2405#true} ~MAX~0 := (if #t~nondet0 % 4294967296 % 4294967296 <= 2147483647 then #t~nondet0 % 4294967296 % 4294967296 else #t~nondet0 % 4294967296 % 4294967296 - 4294967296);havoc #t~nondet0;call ~#str1~0.base, ~#str1~0.offset := #Ultimate.alloc(~MAX~0 * 1);call ~#str2~0.base, ~#str2~0.offset := #Ultimate.alloc(~MAX~0 * 1);havoc ~cont~0;havoc ~i~0;havoc ~j~0;~cont~0 := 0;~i~0 := 0; {2407#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} is VALID [2018-11-14 19:17:28,183 INFO L273 TraceCheckUtils]: 6: Hoare triple {2407#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} assume true; {2407#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} is VALID [2018-11-14 19:17:28,183 INFO L273 TraceCheckUtils]: 7: Hoare triple {2407#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} assume !!(~i~0 < ~MAX~0);assume -128 <= #t~nondet2 && #t~nondet2 <= 127;call write~int(#t~nondet2, ~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);havoc #t~nondet2; {2407#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} is VALID [2018-11-14 19:17:28,184 INFO L273 TraceCheckUtils]: 8: Hoare triple {2407#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} #t~post1 := ~i~0;~i~0 := #t~post1 + 1;havoc #t~post1; {2407#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} is VALID [2018-11-14 19:17:28,184 INFO L273 TraceCheckUtils]: 9: Hoare triple {2407#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} assume true; {2407#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} is VALID [2018-11-14 19:17:28,185 INFO L273 TraceCheckUtils]: 10: Hoare triple {2407#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} assume !!(~i~0 < ~MAX~0);assume -128 <= #t~nondet2 && #t~nondet2 <= 127;call write~int(#t~nondet2, ~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);havoc #t~nondet2; {2407#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} is VALID [2018-11-14 19:17:28,185 INFO L273 TraceCheckUtils]: 11: Hoare triple {2407#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} #t~post1 := ~i~0;~i~0 := #t~post1 + 1;havoc #t~post1; {2408#(and (= |main_~#str1~0.offset| 0) (= |main_~#str2~0.offset| 0) (or (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (not (= main_~MAX~0 (+ main_~i~0 1)))))} is VALID [2018-11-14 19:17:28,188 INFO L273 TraceCheckUtils]: 12: Hoare triple {2408#(and (= |main_~#str1~0.offset| 0) (= |main_~#str2~0.offset| 0) (or (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (not (= main_~MAX~0 (+ main_~i~0 1)))))} assume true; {2408#(and (= |main_~#str1~0.offset| 0) (= |main_~#str2~0.offset| 0) (or (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (not (= main_~MAX~0 (+ main_~i~0 1)))))} is VALID [2018-11-14 19:17:28,189 INFO L273 TraceCheckUtils]: 13: Hoare triple {2408#(and (= |main_~#str1~0.offset| 0) (= |main_~#str2~0.offset| 0) (or (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (not (= main_~MAX~0 (+ main_~i~0 1)))))} assume !!(~i~0 < ~MAX~0);assume -128 <= #t~nondet2 && #t~nondet2 <= 127;call write~int(#t~nondet2, ~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);havoc #t~nondet2; {2409#(and (or (= main_~MAX~0 (+ main_~i~0 1)) (< (+ main_~i~0 1) main_~MAX~0)) (= |main_~#str1~0.offset| 0) (= |main_~#str2~0.offset| 0) (or (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (not (= main_~MAX~0 (+ main_~i~0 1)))))} is VALID [2018-11-14 19:17:28,190 INFO L273 TraceCheckUtils]: 14: Hoare triple {2409#(and (or (= main_~MAX~0 (+ main_~i~0 1)) (< (+ main_~i~0 1) main_~MAX~0)) (= |main_~#str1~0.offset| 0) (= |main_~#str2~0.offset| 0) (or (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (not (= main_~MAX~0 (+ main_~i~0 1)))))} #t~post1 := ~i~0;~i~0 := #t~post1 + 1;havoc #t~post1; {2410#(and (= |main_~#str1~0.offset| 0) (or (<= (+ main_~i~0 1) main_~MAX~0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|))) (= |main_~#str2~0.offset| 0))} is VALID [2018-11-14 19:17:28,191 INFO L273 TraceCheckUtils]: 15: Hoare triple {2410#(and (= |main_~#str1~0.offset| 0) (or (<= (+ main_~i~0 1) main_~MAX~0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|))) (= |main_~#str2~0.offset| 0))} assume true; {2410#(and (= |main_~#str1~0.offset| 0) (or (<= (+ main_~i~0 1) main_~MAX~0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|))) (= |main_~#str2~0.offset| 0))} is VALID [2018-11-14 19:17:28,192 INFO L273 TraceCheckUtils]: 16: Hoare triple {2410#(and (= |main_~#str1~0.offset| 0) (or (<= (+ main_~i~0 1) main_~MAX~0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|))) (= |main_~#str2~0.offset| 0))} assume !(~i~0 < ~MAX~0); {2407#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} is VALID [2018-11-14 19:17:28,193 INFO L273 TraceCheckUtils]: 17: Hoare triple {2407#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} call write~int(0, ~#str1~0.base, ~#str1~0.offset + (~MAX~0 - 1) * 1, 1);~j~0 := 0;~i~0 := ~MAX~0 - 1; {2411#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= main_~j~0 0) (= |main_~#str2~0.offset| 0) (= (+ main_~i~0 1) main_~MAX~0))} is VALID [2018-11-14 19:17:28,194 INFO L273 TraceCheckUtils]: 18: Hoare triple {2411#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= main_~j~0 0) (= |main_~#str2~0.offset| 0) (= (+ main_~i~0 1) main_~MAX~0))} assume true; {2411#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= main_~j~0 0) (= |main_~#str2~0.offset| 0) (= (+ main_~i~0 1) main_~MAX~0))} is VALID [2018-11-14 19:17:28,194 INFO L273 TraceCheckUtils]: 19: Hoare triple {2411#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= main_~j~0 0) (= |main_~#str2~0.offset| 0) (= (+ main_~i~0 1) main_~MAX~0))} assume !!(~i~0 >= 0);call #t~mem4 := read~int(~#str1~0.base, ~#str1~0.offset + 0, 1);call write~int(#t~mem4, ~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1);havoc #t~mem4;#t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2412#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0) (= (+ main_~i~0 main_~j~0) main_~MAX~0))} is VALID [2018-11-14 19:17:28,195 INFO L273 TraceCheckUtils]: 20: Hoare triple {2412#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0) (= (+ main_~i~0 main_~j~0) main_~MAX~0))} #t~post3 := ~i~0;~i~0 := #t~post3 - 1;havoc #t~post3; {2413#(and (= |main_~#str1~0.offset| 0) (or (<= main_~i~0 0) (= (+ main_~i~0 main_~j~0 1) main_~MAX~0)) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} is VALID [2018-11-14 19:17:28,196 INFO L273 TraceCheckUtils]: 21: Hoare triple {2413#(and (= |main_~#str1~0.offset| 0) (or (<= main_~i~0 0) (= (+ main_~i~0 main_~j~0 1) main_~MAX~0)) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} assume true; {2413#(and (= |main_~#str1~0.offset| 0) (or (<= main_~i~0 0) (= (+ main_~i~0 main_~j~0 1) main_~MAX~0)) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} is VALID [2018-11-14 19:17:28,197 INFO L273 TraceCheckUtils]: 22: Hoare triple {2413#(and (= |main_~#str1~0.offset| 0) (or (<= main_~i~0 0) (= (+ main_~i~0 main_~j~0 1) main_~MAX~0)) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} assume !!(~i~0 >= 0);call #t~mem4 := read~int(~#str1~0.base, ~#str1~0.offset + 0, 1);call write~int(#t~mem4, ~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1);havoc #t~mem4;#t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2414#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0) (or (<= (+ |main_~#str2~0.offset| 2) (+ |main_~#str1~0.offset| main_~i~0)) (= (+ main_~j~0 |main_~#str2~0.offset| 1) (+ |main_~#str1~0.offset| main_~MAX~0)) (<= main_~i~0 0)))} is VALID [2018-11-14 19:17:28,198 INFO L273 TraceCheckUtils]: 23: Hoare triple {2414#(and (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0) (or (<= (+ |main_~#str2~0.offset| 2) (+ |main_~#str1~0.offset| main_~i~0)) (= (+ main_~j~0 |main_~#str2~0.offset| 1) (+ |main_~#str1~0.offset| main_~MAX~0)) (<= main_~i~0 0)))} #t~post3 := ~i~0;~i~0 := #t~post3 - 1;havoc #t~post3; {2415#(and (or (<= (+ |main_~#str2~0.offset| 1) (+ |main_~#str1~0.offset| main_~i~0)) (= (+ main_~j~0 |main_~#str2~0.offset| 1) (+ |main_~#str1~0.offset| main_~MAX~0)) (<= (+ main_~i~0 1) 0)) (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} is VALID [2018-11-14 19:17:28,199 INFO L273 TraceCheckUtils]: 24: Hoare triple {2415#(and (or (<= (+ |main_~#str2~0.offset| 1) (+ |main_~#str1~0.offset| main_~i~0)) (= (+ main_~j~0 |main_~#str2~0.offset| 1) (+ |main_~#str1~0.offset| main_~MAX~0)) (<= (+ main_~i~0 1) 0)) (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} assume true; {2415#(and (or (<= (+ |main_~#str2~0.offset| 1) (+ |main_~#str1~0.offset| main_~i~0)) (= (+ main_~j~0 |main_~#str2~0.offset| 1) (+ |main_~#str1~0.offset| main_~MAX~0)) (<= (+ main_~i~0 1) 0)) (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} is VALID [2018-11-14 19:17:28,200 INFO L273 TraceCheckUtils]: 25: Hoare triple {2415#(and (or (<= (+ |main_~#str2~0.offset| 1) (+ |main_~#str1~0.offset| main_~i~0)) (= (+ main_~j~0 |main_~#str2~0.offset| 1) (+ |main_~#str1~0.offset| main_~MAX~0)) (<= (+ main_~i~0 1) 0)) (= |main_~#str1~0.offset| 0) (not (= |main_~#str1~0.base| |main_~#str2~0.base|)) (= |main_~#str2~0.offset| 0))} assume !!(~i~0 >= 0);call #t~mem4 := read~int(~#str1~0.base, ~#str1~0.offset + 0, 1);call write~int(#t~mem4, ~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1);havoc #t~mem4;#t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2416#(and (= |main_~#str1~0.offset| 0) (= |main_~#str2~0.offset| 0) (or (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str1~0.offset| (+ main_~MAX~0 (- 1))))) (<= (+ |main_~#str2~0.offset| 1) (+ |main_~#str1~0.offset| main_~i~0))))} is VALID [2018-11-14 19:17:28,202 INFO L273 TraceCheckUtils]: 26: Hoare triple {2416#(and (= |main_~#str1~0.offset| 0) (= |main_~#str2~0.offset| 0) (or (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str1~0.offset| (+ main_~MAX~0 (- 1))))) (<= (+ |main_~#str2~0.offset| 1) (+ |main_~#str1~0.offset| main_~i~0))))} #t~post3 := ~i~0;~i~0 := #t~post3 - 1;havoc #t~post3; {2417#(and (= |main_~#str1~0.offset| 0) (or (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str1~0.offset| (+ main_~MAX~0 (- 1))))) (<= |main_~#str2~0.offset| (+ |main_~#str1~0.offset| main_~i~0))) (= |main_~#str2~0.offset| 0))} is VALID [2018-11-14 19:17:28,203 INFO L273 TraceCheckUtils]: 27: Hoare triple {2417#(and (= |main_~#str1~0.offset| 0) (or (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str1~0.offset| (+ main_~MAX~0 (- 1))))) (<= |main_~#str2~0.offset| (+ |main_~#str1~0.offset| main_~i~0))) (= |main_~#str2~0.offset| 0))} assume true; {2417#(and (= |main_~#str1~0.offset| 0) (or (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str1~0.offset| (+ main_~MAX~0 (- 1))))) (<= |main_~#str2~0.offset| (+ |main_~#str1~0.offset| main_~i~0))) (= |main_~#str2~0.offset| 0))} is VALID [2018-11-14 19:17:28,204 INFO L273 TraceCheckUtils]: 28: Hoare triple {2417#(and (= |main_~#str1~0.offset| 0) (or (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str1~0.offset| (+ main_~MAX~0 (- 1))))) (<= |main_~#str2~0.offset| (+ |main_~#str1~0.offset| main_~i~0))) (= |main_~#str2~0.offset| 0))} assume !(~i~0 >= 0); {2418#(and (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str1~0.offset| (+ main_~MAX~0 (- 1))))) (= |main_~#str1~0.offset| 0) (= |main_~#str2~0.offset| 0))} is VALID [2018-11-14 19:17:28,205 INFO L273 TraceCheckUtils]: 29: Hoare triple {2418#(and (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str1~0.offset| (+ main_~MAX~0 (- 1))))) (= |main_~#str1~0.offset| 0) (= |main_~#str2~0.offset| 0))} ~j~0 := ~MAX~0 - 1;~i~0 := 0; {2419#(and (= |main_~#str1~0.offset| 0) (= (select (select |#memory_int| |main_~#str1~0.base|) (+ main_~i~0 |main_~#str1~0.offset|)) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| main_~j~0))) (= |main_~#str2~0.offset| 0) (= main_~i~0 0))} is VALID [2018-11-14 19:17:28,206 INFO L273 TraceCheckUtils]: 30: Hoare triple {2419#(and (= |main_~#str1~0.offset| 0) (= (select (select |#memory_int| |main_~#str1~0.base|) (+ main_~i~0 |main_~#str1~0.offset|)) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| main_~j~0))) (= |main_~#str2~0.offset| 0) (= main_~i~0 0))} assume true; {2419#(and (= |main_~#str1~0.offset| 0) (= (select (select |#memory_int| |main_~#str1~0.base|) (+ main_~i~0 |main_~#str1~0.offset|)) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| main_~j~0))) (= |main_~#str2~0.offset| 0) (= main_~i~0 0))} is VALID [2018-11-14 19:17:28,207 INFO L273 TraceCheckUtils]: 31: Hoare triple {2419#(and (= |main_~#str1~0.offset| 0) (= (select (select |#memory_int| |main_~#str1~0.base|) (+ main_~i~0 |main_~#str1~0.offset|)) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| main_~j~0))) (= |main_~#str2~0.offset| 0) (= main_~i~0 0))} assume !!(~i~0 < ~MAX~0);call #t~mem7 := read~int(~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);call #t~mem8 := read~int(~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1); {2420#(= |main_#t~mem8| |main_#t~mem7|)} is VALID [2018-11-14 19:17:28,208 INFO L256 TraceCheckUtils]: 32: Hoare triple {2420#(= |main_#t~mem8| |main_#t~mem7|)} call __VERIFIER_assert((if #t~mem7 == #t~mem8 then 1 else 0)); {2421#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2018-11-14 19:17:28,208 INFO L273 TraceCheckUtils]: 33: Hoare triple {2421#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {2422#(not (= __VERIFIER_assert_~cond 0))} is VALID [2018-11-14 19:17:28,209 INFO L273 TraceCheckUtils]: 34: Hoare triple {2422#(not (= __VERIFIER_assert_~cond 0))} assume ~cond == 0; {2406#false} is VALID [2018-11-14 19:17:28,209 INFO L273 TraceCheckUtils]: 35: Hoare triple {2406#false} assume !false; {2406#false} is VALID [2018-11-14 19:17:28,214 INFO L134 CoverageAnalysis]: Checked inductivity of 30 backedges. 0 proven. 27 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2018-11-14 19:17:28,215 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-14 19:17:28,215 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP 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 [2018-11-14 19:17:28,223 INFO L103 rtionOrderModulation]: Keeping assertion order TERMS_WITH_SMALL_CONSTANTS_FIRST [2018-11-14 19:17:28,250 INFO L249 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2018-11-14 19:17:28,250 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-14 19:17:28,279 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:17:28,281 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-14 19:17:28,630 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 3 case distinctions, treesize of input 17 treesize of output 30 [2018-11-14 19:17:28,637 INFO L477 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 0 new quantified variables, introduced 0 case distinctions, treesize of input 19 treesize of output 18 [2018-11-14 19:17:28,639 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 19:17:28,655 INFO L267 ElimStorePlain]: Start of recursive call 2: 2 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:17:28,663 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:17:28,664 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 1 variables, input treesize:26, output treesize:22 [2018-11-14 19:17:28,797 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 3 case distinctions, treesize of input 31 treesize of output 39 [2018-11-14 19:17:28,812 INFO L700 Elim1Store]: detected not equals via solver [2018-11-14 19:17:28,814 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 30 treesize of output 39 [2018-11-14 19:17:28,818 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 19:17:28,838 INFO L267 ElimStorePlain]: Start of recursive call 2: 2 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:17:28,848 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:17:28,849 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 1 variables, input treesize:39, output treesize:35 [2018-11-14 19:17:29,187 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 1 case distinctions, treesize of input 43 treesize of output 39 [2018-11-14 19:17:29,205 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 30 [2018-11-14 19:17:29,210 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 19:17:29,241 INFO L700 Elim1Store]: detected not equals via solver [2018-11-14 19:17:29,243 INFO L700 Elim1Store]: detected not equals via solver [2018-11-14 19:17:29,244 INFO L682 Elim1Store]: detected equality via solver [2018-11-14 19:17:29,245 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 3 select indices, 3 select index equivalence classes, 1 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 30 treesize of output 31 [2018-11-14 19:17:29,248 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2018-11-14 19:17:29,278 INFO L700 Elim1Store]: detected not equals via solver [2018-11-14 19:17:29,280 INFO L700 Elim1Store]: detected not equals via solver [2018-11-14 19:17:29,281 INFO L682 Elim1Store]: detected equality via solver [2018-11-14 19:17:29,282 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 4 select indices, 4 select index equivalence classes, 1 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 27 [2018-11-14 19:17:29,287 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2018-11-14 19:17:29,296 INFO L267 ElimStorePlain]: Start of recursive call 2: 3 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:17:29,305 INFO L267 ElimStorePlain]: Start of recursive call 1: 5 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:17:29,305 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 6 variables, input treesize:49, output treesize:3 [2018-11-14 19:17:29,307 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 19:17:29,354 INFO L256 TraceCheckUtils]: 0: Hoare triple {2405#true} call ULTIMATE.init(); {2405#true} is VALID [2018-11-14 19:17:29,355 INFO L273 TraceCheckUtils]: 1: Hoare triple {2405#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {2405#true} is VALID [2018-11-14 19:17:29,355 INFO L273 TraceCheckUtils]: 2: Hoare triple {2405#true} assume true; {2405#true} is VALID [2018-11-14 19:17:29,355 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {2405#true} {2405#true} #66#return; {2405#true} is VALID [2018-11-14 19:17:29,355 INFO L256 TraceCheckUtils]: 4: Hoare triple {2405#true} call #t~ret10 := main(); {2405#true} is VALID [2018-11-14 19:17:29,355 INFO L273 TraceCheckUtils]: 5: Hoare triple {2405#true} ~MAX~0 := (if #t~nondet0 % 4294967296 % 4294967296 <= 2147483647 then #t~nondet0 % 4294967296 % 4294967296 else #t~nondet0 % 4294967296 % 4294967296 - 4294967296);havoc #t~nondet0;call ~#str1~0.base, ~#str1~0.offset := #Ultimate.alloc(~MAX~0 * 1);call ~#str2~0.base, ~#str2~0.offset := #Ultimate.alloc(~MAX~0 * 1);havoc ~cont~0;havoc ~i~0;havoc ~j~0;~cont~0 := 0;~i~0 := 0; {2405#true} is VALID [2018-11-14 19:17:29,355 INFO L273 TraceCheckUtils]: 6: Hoare triple {2405#true} assume true; {2405#true} is VALID [2018-11-14 19:17:29,356 INFO L273 TraceCheckUtils]: 7: Hoare triple {2405#true} assume !!(~i~0 < ~MAX~0);assume -128 <= #t~nondet2 && #t~nondet2 <= 127;call write~int(#t~nondet2, ~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);havoc #t~nondet2; {2405#true} is VALID [2018-11-14 19:17:29,356 INFO L273 TraceCheckUtils]: 8: Hoare triple {2405#true} #t~post1 := ~i~0;~i~0 := #t~post1 + 1;havoc #t~post1; {2405#true} is VALID [2018-11-14 19:17:29,356 INFO L273 TraceCheckUtils]: 9: Hoare triple {2405#true} assume true; {2405#true} is VALID [2018-11-14 19:17:29,357 INFO L273 TraceCheckUtils]: 10: Hoare triple {2405#true} assume !!(~i~0 < ~MAX~0);assume -128 <= #t~nondet2 && #t~nondet2 <= 127;call write~int(#t~nondet2, ~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);havoc #t~nondet2; {2405#true} is VALID [2018-11-14 19:17:29,357 INFO L273 TraceCheckUtils]: 11: Hoare triple {2405#true} #t~post1 := ~i~0;~i~0 := #t~post1 + 1;havoc #t~post1; {2405#true} is VALID [2018-11-14 19:17:29,357 INFO L273 TraceCheckUtils]: 12: Hoare triple {2405#true} assume true; {2405#true} is VALID [2018-11-14 19:17:29,358 INFO L273 TraceCheckUtils]: 13: Hoare triple {2405#true} assume !!(~i~0 < ~MAX~0);assume -128 <= #t~nondet2 && #t~nondet2 <= 127;call write~int(#t~nondet2, ~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);havoc #t~nondet2; {2405#true} is VALID [2018-11-14 19:17:29,358 INFO L273 TraceCheckUtils]: 14: Hoare triple {2405#true} #t~post1 := ~i~0;~i~0 := #t~post1 + 1;havoc #t~post1; {2405#true} is VALID [2018-11-14 19:17:29,358 INFO L273 TraceCheckUtils]: 15: Hoare triple {2405#true} assume true; {2405#true} is VALID [2018-11-14 19:17:29,358 INFO L273 TraceCheckUtils]: 16: Hoare triple {2405#true} assume !(~i~0 < ~MAX~0); {2405#true} is VALID [2018-11-14 19:17:29,360 INFO L273 TraceCheckUtils]: 17: Hoare triple {2405#true} call write~int(0, ~#str1~0.base, ~#str1~0.offset + (~MAX~0 - 1) * 1, 1);~j~0 := 0;~i~0 := ~MAX~0 - 1; {2477#(and (= main_~j~0 0) (= (+ main_~i~0 1) main_~MAX~0))} is VALID [2018-11-14 19:17:29,360 INFO L273 TraceCheckUtils]: 18: Hoare triple {2477#(and (= main_~j~0 0) (= (+ main_~i~0 1) main_~MAX~0))} assume true; {2477#(and (= main_~j~0 0) (= (+ main_~i~0 1) main_~MAX~0))} is VALID [2018-11-14 19:17:29,361 INFO L273 TraceCheckUtils]: 19: Hoare triple {2477#(and (= main_~j~0 0) (= (+ main_~i~0 1) main_~MAX~0))} assume !!(~i~0 >= 0);call #t~mem4 := read~int(~#str1~0.base, ~#str1~0.offset + 0, 1);call write~int(#t~mem4, ~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1);havoc #t~mem4;#t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2484#(and (= main_~j~0 1) (= (+ main_~i~0 1) main_~MAX~0))} is VALID [2018-11-14 19:17:29,361 INFO L273 TraceCheckUtils]: 20: Hoare triple {2484#(and (= main_~j~0 1) (= (+ main_~i~0 1) main_~MAX~0))} #t~post3 := ~i~0;~i~0 := #t~post3 - 1;havoc #t~post3; {2488#(and (= main_~MAX~0 (+ main_~i~0 2)) (= main_~j~0 1))} is VALID [2018-11-14 19:17:29,362 INFO L273 TraceCheckUtils]: 21: Hoare triple {2488#(and (= main_~MAX~0 (+ main_~i~0 2)) (= main_~j~0 1))} assume true; {2488#(and (= main_~MAX~0 (+ main_~i~0 2)) (= main_~j~0 1))} is VALID [2018-11-14 19:17:29,362 INFO L273 TraceCheckUtils]: 22: Hoare triple {2488#(and (= main_~MAX~0 (+ main_~i~0 2)) (= main_~j~0 1))} assume !!(~i~0 >= 0);call #t~mem4 := read~int(~#str1~0.base, ~#str1~0.offset + 0, 1);call write~int(#t~mem4, ~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1);havoc #t~mem4;#t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2495#(and (= main_~j~0 2) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (= main_~MAX~0 (+ main_~i~0 2)))} is VALID [2018-11-14 19:17:29,363 INFO L273 TraceCheckUtils]: 23: Hoare triple {2495#(and (= main_~j~0 2) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (= main_~MAX~0 (+ main_~i~0 2)))} #t~post3 := ~i~0;~i~0 := #t~post3 - 1;havoc #t~post3; {2499#(and (= main_~j~0 2) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (= main_~MAX~0 (+ main_~i~0 3)))} is VALID [2018-11-14 19:17:29,364 INFO L273 TraceCheckUtils]: 24: Hoare triple {2499#(and (= main_~j~0 2) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (= main_~MAX~0 (+ main_~i~0 3)))} assume true; {2499#(and (= main_~j~0 2) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (= main_~MAX~0 (+ main_~i~0 3)))} is VALID [2018-11-14 19:17:29,366 INFO L273 TraceCheckUtils]: 25: Hoare triple {2499#(and (= main_~j~0 2) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (= main_~MAX~0 (+ main_~i~0 3)))} assume !!(~i~0 >= 0);call #t~mem4 := read~int(~#str1~0.base, ~#str1~0.offset + 0, 1);call write~int(#t~mem4, ~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1);havoc #t~mem4;#t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2506#(and (<= 0 main_~i~0) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 2))) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (= main_~MAX~0 (+ main_~i~0 3)))} is VALID [2018-11-14 19:17:29,367 INFO L273 TraceCheckUtils]: 26: Hoare triple {2506#(and (<= 0 main_~i~0) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 2))) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (= main_~MAX~0 (+ main_~i~0 3)))} #t~post3 := ~i~0;~i~0 := #t~post3 - 1;havoc #t~post3; {2510#(and (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 2))) (<= 3 main_~MAX~0) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (<= main_~MAX~0 (+ main_~i~0 4)))} is VALID [2018-11-14 19:17:29,375 INFO L273 TraceCheckUtils]: 27: Hoare triple {2510#(and (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 2))) (<= 3 main_~MAX~0) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (<= main_~MAX~0 (+ main_~i~0 4)))} assume true; {2510#(and (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 2))) (<= 3 main_~MAX~0) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (<= main_~MAX~0 (+ main_~i~0 4)))} is VALID [2018-11-14 19:17:29,376 INFO L273 TraceCheckUtils]: 28: Hoare triple {2510#(and (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 2))) (<= 3 main_~MAX~0) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (<= main_~MAX~0 (+ main_~i~0 4)))} assume !(~i~0 >= 0); {2517#(and (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 2))) (<= 3 main_~MAX~0) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (<= main_~MAX~0 3))} is VALID [2018-11-14 19:17:29,377 INFO L273 TraceCheckUtils]: 29: Hoare triple {2517#(and (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 2))) (<= 3 main_~MAX~0) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (<= main_~MAX~0 3))} ~j~0 := ~MAX~0 - 1;~i~0 := 0; {2521#(and (<= 2 main_~j~0) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 2))) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (<= main_~j~0 2) (= main_~i~0 0))} is VALID [2018-11-14 19:17:29,377 INFO L273 TraceCheckUtils]: 30: Hoare triple {2521#(and (<= 2 main_~j~0) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 2))) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (<= main_~j~0 2) (= main_~i~0 0))} assume true; {2521#(and (<= 2 main_~j~0) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 2))) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (<= main_~j~0 2) (= main_~i~0 0))} is VALID [2018-11-14 19:17:29,378 INFO L273 TraceCheckUtils]: 31: Hoare triple {2521#(and (<= 2 main_~j~0) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 2))) (= (select (select |#memory_int| |main_~#str1~0.base|) |main_~#str1~0.offset|) (select (select |#memory_int| |main_~#str2~0.base|) (+ |main_~#str2~0.offset| 1))) (<= main_~j~0 2) (= main_~i~0 0))} assume !!(~i~0 < ~MAX~0);call #t~mem7 := read~int(~#str1~0.base, ~#str1~0.offset + ~i~0 * 1, 1);call #t~mem8 := read~int(~#str2~0.base, ~#str2~0.offset + ~j~0 * 1, 1); {2420#(= |main_#t~mem8| |main_#t~mem7|)} is VALID [2018-11-14 19:17:29,379 INFO L256 TraceCheckUtils]: 32: Hoare triple {2420#(= |main_#t~mem8| |main_#t~mem7|)} call __VERIFIER_assert((if #t~mem7 == #t~mem8 then 1 else 0)); {2531#(= |__VERIFIER_assert_#in~cond| 1)} is VALID [2018-11-14 19:17:29,379 INFO L273 TraceCheckUtils]: 33: Hoare triple {2531#(= |__VERIFIER_assert_#in~cond| 1)} ~cond := #in~cond; {2535#(= 1 __VERIFIER_assert_~cond)} is VALID [2018-11-14 19:17:29,380 INFO L273 TraceCheckUtils]: 34: Hoare triple {2535#(= 1 __VERIFIER_assert_~cond)} assume ~cond == 0; {2406#false} is VALID [2018-11-14 19:17:29,380 INFO L273 TraceCheckUtils]: 35: Hoare triple {2406#false} assume !false; {2406#false} is VALID [2018-11-14 19:17:29,383 INFO L134 CoverageAnalysis]: Checked inductivity of 30 backedges. 0 proven. 15 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2018-11-14 19:17:29,403 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-14 19:17:29,403 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [18, 14] total 29 [2018-11-14 19:17:29,404 INFO L78 Accepts]: Start accepts. Automaton has 29 states. Word has length 36 [2018-11-14 19:17:29,404 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 19:17:29,405 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 29 states. [2018-11-14 19:17:29,472 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 57 edges. 57 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:17:29,472 INFO L459 AbstractCegarLoop]: Interpolant automaton has 29 states [2018-11-14 19:17:29,473 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 29 interpolants. [2018-11-14 19:17:29,473 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=86, Invalid=726, Unknown=0, NotChecked=0, Total=812 [2018-11-14 19:17:29,474 INFO L87 Difference]: Start difference. First operand 58 states and 62 transitions. Second operand 29 states. [2018-11-14 19:17:32,635 WARN L179 SmtUtils]: Spent 142.00 ms on a formula simplification. DAG size of input: 55 DAG size of output: 48 [2018-11-14 19:17:35,726 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:17:35,727 INFO L93 Difference]: Finished difference Result 88 states and 96 transitions. [2018-11-14 19:17:35,727 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 33 states. [2018-11-14 19:17:35,727 INFO L78 Accepts]: Start accepts. Automaton has 29 states. Word has length 36 [2018-11-14 19:17:35,727 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 19:17:35,727 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 29 states. [2018-11-14 19:17:35,730 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 33 states to 33 states and 74 transitions. [2018-11-14 19:17:35,730 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 29 states. [2018-11-14 19:17:35,732 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 33 states to 33 states and 74 transitions. [2018-11-14 19:17:35,732 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 33 states and 74 transitions. [2018-11-14 19:17:35,857 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 74 edges. 74 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:17:35,859 INFO L225 Difference]: With dead ends: 88 [2018-11-14 19:17:35,860 INFO L226 Difference]: Without dead ends: 86 [2018-11-14 19:17:35,861 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 82 GetRequests, 27 SyntacticMatches, 0 SemanticMatches, 55 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 684 ImplicationChecksByTransitivity, 3.8s TimeCoverageRelationStatistics Valid=533, Invalid=2659, Unknown=0, NotChecked=0, Total=3192 [2018-11-14 19:17:35,861 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 86 states. [2018-11-14 19:17:36,042 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 86 to 54. [2018-11-14 19:17:36,043 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 19:17:36,043 INFO L82 GeneralOperation]: Start isEquivalent. First operand 86 states. Second operand 54 states. [2018-11-14 19:17:36,043 INFO L74 IsIncluded]: Start isIncluded. First operand 86 states. Second operand 54 states. [2018-11-14 19:17:36,043 INFO L87 Difference]: Start difference. First operand 86 states. Second operand 54 states. [2018-11-14 19:17:36,046 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:17:36,046 INFO L93 Difference]: Finished difference Result 86 states and 94 transitions. [2018-11-14 19:17:36,046 INFO L276 IsEmpty]: Start isEmpty. Operand 86 states and 94 transitions. [2018-11-14 19:17:36,047 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:17:36,047 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:17:36,047 INFO L74 IsIncluded]: Start isIncluded. First operand 54 states. Second operand 86 states. [2018-11-14 19:17:36,047 INFO L87 Difference]: Start difference. First operand 54 states. Second operand 86 states. [2018-11-14 19:17:36,049 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:17:36,049 INFO L93 Difference]: Finished difference Result 86 states and 94 transitions. [2018-11-14 19:17:36,050 INFO L276 IsEmpty]: Start isEmpty. Operand 86 states and 94 transitions. [2018-11-14 19:17:36,050 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:17:36,050 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:17:36,050 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 19:17:36,050 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 19:17:36,050 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 54 states. [2018-11-14 19:17:36,051 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 54 states to 54 states and 57 transitions. [2018-11-14 19:17:36,052 INFO L78 Accepts]: Start accepts. Automaton has 54 states and 57 transitions. Word has length 36 [2018-11-14 19:17:36,052 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 19:17:36,052 INFO L480 AbstractCegarLoop]: Abstraction has 54 states and 57 transitions. [2018-11-14 19:17:36,052 INFO L481 AbstractCegarLoop]: Interpolant automaton has 29 states. [2018-11-14 19:17:36,052 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 57 transitions. [2018-11-14 19:17:36,053 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 40 [2018-11-14 19:17:36,053 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:17:36,053 INFO L375 BasicCegarLoop]: trace histogram [3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 19:17:36,053 INFO L423 AbstractCegarLoop]: === Iteration 9 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:17:36,054 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:17:36,054 INFO L82 PathProgramCache]: Analyzing trace with hash -669879850, now seen corresponding path program 2 times [2018-11-14 19:17:36,054 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:17:36,054 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:17:36,055 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:17:36,055 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-14 19:17:36,055 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:17:36,097 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-14 19:17:36,131 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-14 19:17:36,161 INFO L442 BasicCegarLoop]: Counterexample might be feasible [2018-11-14 19:17:36,215 WARN L170 areAnnotationChecker]: ULTIMATE.initENTRY has no Hoare annotation [2018-11-14 19:17:36,216 WARN L170 areAnnotationChecker]: ULTIMATE.startENTRY has no Hoare annotation [2018-11-14 19:17:36,216 WARN L170 areAnnotationChecker]: ULTIMATE.startENTRY has no Hoare annotation [2018-11-14 19:17:36,216 WARN L170 areAnnotationChecker]: mainENTRY has no Hoare annotation [2018-11-14 19:17:36,216 WARN L170 areAnnotationChecker]: __VERIFIER_assertENTRY has no Hoare annotation [2018-11-14 19:17:36,216 WARN L170 areAnnotationChecker]: ULTIMATE.initFINAL has no Hoare annotation [2018-11-14 19:17:36,216 WARN L170 areAnnotationChecker]: L-1 has no Hoare annotation [2018-11-14 19:17:36,216 WARN L170 areAnnotationChecker]: L-1 has no Hoare annotation [2018-11-14 19:17:36,216 WARN L170 areAnnotationChecker]: L18-4 has no Hoare annotation [2018-11-14 19:17:36,216 WARN L170 areAnnotationChecker]: L18-4 has no Hoare annotation [2018-11-14 19:17:36,217 WARN L170 areAnnotationChecker]: L4 has no Hoare annotation [2018-11-14 19:17:36,217 WARN L170 areAnnotationChecker]: L4 has no Hoare annotation [2018-11-14 19:17:36,217 WARN L170 areAnnotationChecker]: ULTIMATE.initEXIT has no Hoare annotation [2018-11-14 19:17:36,217 WARN L170 areAnnotationChecker]: ULTIMATE.startFINAL has no Hoare annotation [2018-11-14 19:17:36,217 WARN L170 areAnnotationChecker]: L18-1 has no Hoare annotation [2018-11-14 19:17:36,217 WARN L170 areAnnotationChecker]: L18-1 has no Hoare annotation [2018-11-14 19:17:36,217 WARN L170 areAnnotationChecker]: L18-5 has no Hoare annotation [2018-11-14 19:17:36,217 WARN L170 areAnnotationChecker]: L5 has no Hoare annotation [2018-11-14 19:17:36,217 WARN L170 areAnnotationChecker]: L5 has no Hoare annotation [2018-11-14 19:17:36,217 WARN L170 areAnnotationChecker]: L4-2 has no Hoare annotation [2018-11-14 19:17:36,218 WARN L170 areAnnotationChecker]: L18-3 has no Hoare annotation [2018-11-14 19:17:36,218 WARN L170 areAnnotationChecker]: L25-4 has no Hoare annotation [2018-11-14 19:17:36,218 WARN L170 areAnnotationChecker]: L25-4 has no Hoare annotation [2018-11-14 19:17:36,218 WARN L170 areAnnotationChecker]: __VERIFIER_assertEXIT has no Hoare annotation [2018-11-14 19:17:36,218 WARN L170 areAnnotationChecker]: L25-1 has no Hoare annotation [2018-11-14 19:17:36,218 WARN L170 areAnnotationChecker]: L25-1 has no Hoare annotation [2018-11-14 19:17:36,218 WARN L170 areAnnotationChecker]: L25-5 has no Hoare annotation [2018-11-14 19:17:36,218 WARN L170 areAnnotationChecker]: L32-1 has no Hoare annotation [2018-11-14 19:17:36,218 WARN L170 areAnnotationChecker]: L25-3 has no Hoare annotation [2018-11-14 19:17:36,218 WARN L170 areAnnotationChecker]: L31-4 has no Hoare annotation [2018-11-14 19:17:36,218 WARN L170 areAnnotationChecker]: L31-4 has no Hoare annotation [2018-11-14 19:17:36,219 WARN L170 areAnnotationChecker]: L31-3 has no Hoare annotation [2018-11-14 19:17:36,219 WARN L170 areAnnotationChecker]: L31-1 has no Hoare annotation [2018-11-14 19:17:36,219 WARN L170 areAnnotationChecker]: L31-1 has no Hoare annotation [2018-11-14 19:17:36,219 WARN L170 areAnnotationChecker]: L31-5 has no Hoare annotation [2018-11-14 19:17:36,219 WARN L170 areAnnotationChecker]: L32 has no Hoare annotation [2018-11-14 19:17:36,219 WARN L170 areAnnotationChecker]: L32 has no Hoare annotation [2018-11-14 19:17:36,219 WARN L170 areAnnotationChecker]: mainFINAL has no Hoare annotation [2018-11-14 19:17:36,219 WARN L170 areAnnotationChecker]: mainEXIT has no Hoare annotation [2018-11-14 19:17:36,219 INFO L163 areAnnotationChecker]: CFG has 0 edges. 0 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. 0 times interpolants missing. [2018-11-14 19:17:36,222 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction CFG 14.11 07:17:36 BoogieIcfgContainer [2018-11-14 19:17:36,222 INFO L132 PluginConnector]: ------------------------ END TraceAbstraction---------------------------- [2018-11-14 19:17:36,224 INFO L168 Benchmark]: Toolchain (without parser) took 28234.74 ms. Allocated memory was 1.5 GB in the beginning and 2.6 GB in the end (delta: 1.1 GB). Free memory was 1.4 GB in the beginning and 1.9 GB in the end (delta: -478.2 MB). Peak memory consumption was 621.2 MB. Max. memory is 7.1 GB. [2018-11-14 19:17:36,224 INFO L168 Benchmark]: CDTParser took 0.27 ms. Allocated memory is still 1.5 GB. Free memory is still 1.5 GB. There was no memory consumed. Max. memory is 7.1 GB. [2018-11-14 19:17:36,225 INFO L168 Benchmark]: CACSL2BoogieTranslator took 376.68 ms. Allocated memory is still 1.5 GB. Free memory was 1.4 GB in the beginning and 1.4 GB in the end (delta: 10.6 MB). Peak memory consumption was 10.6 MB. Max. memory is 7.1 GB. [2018-11-14 19:17:36,225 INFO L168 Benchmark]: Boogie Preprocessor took 51.19 ms. Allocated memory is still 1.5 GB. Free memory is still 1.4 GB. There was no memory consumed. Max. memory is 7.1 GB. [2018-11-14 19:17:36,225 INFO L168 Benchmark]: RCFGBuilder took 722.39 ms. Allocated memory was 1.5 GB in the beginning and 2.3 GB in the end (delta: 733.5 MB). Free memory was 1.4 GB in the beginning and 2.2 GB in the end (delta: -756.5 MB). Peak memory consumption was 26.3 MB. Max. memory is 7.1 GB. [2018-11-14 19:17:36,226 INFO L168 Benchmark]: TraceAbstraction took 27079.17 ms. Allocated memory was 2.3 GB in the beginning and 2.6 GB in the end (delta: 366.0 MB). Free memory was 2.2 GB in the beginning and 1.9 GB in the end (delta: 267.7 MB). Peak memory consumption was 633.7 MB. Max. memory is 7.1 GB. [2018-11-14 19:17:36,230 INFO L336 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - GenericResult: Assertions are enabled Assertions are enabled - StatisticsResult: Toolchain Benchmarks Benchmark results are: * CDTParser took 0.27 ms. Allocated memory is still 1.5 GB. Free memory is still 1.5 GB. There was no memory consumed. Max. memory is 7.1 GB. * CACSL2BoogieTranslator took 376.68 ms. Allocated memory is still 1.5 GB. Free memory was 1.4 GB in the beginning and 1.4 GB in the end (delta: 10.6 MB). Peak memory consumption was 10.6 MB. Max. memory is 7.1 GB. * Boogie Preprocessor took 51.19 ms. Allocated memory is still 1.5 GB. Free memory is still 1.4 GB. There was no memory consumed. Max. memory is 7.1 GB. * RCFGBuilder took 722.39 ms. Allocated memory was 1.5 GB in the beginning and 2.3 GB in the end (delta: 733.5 MB). Free memory was 1.4 GB in the beginning and 2.2 GB in the end (delta: -756.5 MB). Peak memory consumption was 26.3 MB. Max. memory is 7.1 GB. * TraceAbstraction took 27079.17 ms. Allocated memory was 2.3 GB in the beginning and 2.6 GB in the end (delta: 366.0 MB). Free memory was 2.2 GB in the beginning and 1.9 GB in the end (delta: 267.7 MB). Peak memory consumption was 633.7 MB. Max. memory is 7.1 GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - CounterExampleResult [Line: 5]: a call of __VERIFIER_error() is reachable a call of __VERIFIER_error() is reachable We found a FailurePath: [L13] int MAX = __VERIFIER_nondet_uint(); [L14] FCALL char str1[MAX], str2[MAX]; [L15] int cont, i, j; [L16] cont = 0 [L18] i=0 VAL [cont=0, i=0, MAX=2, str1={4:0}, str2={5:0}] [L18] COND TRUE i= 0 [L26] EXPR, FCALL str1[0] [L26] FCALL str2[j] = str1[0] [L27] j++ VAL [cont=0, i=1, j=1, MAX=2, str1={4:0}, str2={5:0}] [L25] i-- VAL [cont=0, i=0, j=1, MAX=2, str1={4:0}, str2={5:0}] [L25] COND TRUE i >= 0 [L26] EXPR, FCALL str1[0] [L26] FCALL str2[j] = str1[0] [L27] j++ VAL [cont=0, i=0, j=2, MAX=2, str1={4:0}, str2={5:0}] [L25] i-- VAL [cont=0, i=-1, j=2, MAX=2, str1={4:0}, str2={5:0}] [L25] COND FALSE !(i >= 0) VAL [cont=0, i=-1, j=2, MAX=2, str1={4:0}, str2={5:0}] [L30] j = MAX-1 [L31] i=0 VAL [cont=0, i=0, j=1, MAX=2, str1={4:0}, str2={5:0}] [L31] COND TRUE i