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/ldv-regression/test27_false-unreach-call_true-termination.c -------------------------------------------------------------------------------- This is Ultimate 0.1.23-370d6ab [2018-11-14 19:10:43,297 INFO L170 SettingsManager]: Resetting all preferences to default values... [2018-11-14 19:10:43,299 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2018-11-14 19:10:43,312 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2018-11-14 19:10:43,312 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2018-11-14 19:10:43,313 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2018-11-14 19:10:43,314 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2018-11-14 19:10:43,316 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2018-11-14 19:10:43,318 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2018-11-14 19:10:43,319 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2018-11-14 19:10:43,320 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2018-11-14 19:10:43,320 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2018-11-14 19:10:43,321 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2018-11-14 19:10:43,322 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2018-11-14 19:10:43,323 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2018-11-14 19:10:43,324 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2018-11-14 19:10:43,325 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2018-11-14 19:10:43,327 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2018-11-14 19:10:43,329 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2018-11-14 19:10:43,331 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2018-11-14 19:10:43,332 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2018-11-14 19:10:43,333 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2018-11-14 19:10:43,335 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2018-11-14 19:10:43,336 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2018-11-14 19:10:43,336 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2018-11-14 19:10:43,337 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2018-11-14 19:10:43,338 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2018-11-14 19:10:43,339 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2018-11-14 19:10:43,340 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2018-11-14 19:10:43,341 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2018-11-14 19:10:43,341 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2018-11-14 19:10:43,342 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2018-11-14 19:10:43,342 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2018-11-14 19:10:43,342 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2018-11-14 19:10:43,343 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2018-11-14 19:10:43,344 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2018-11-14 19:10:43,345 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:10:43,367 INFO L110 SettingsManager]: Loading preferences was successful [2018-11-14 19:10:43,368 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2018-11-14 19:10:43,370 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2018-11-14 19:10:43,370 INFO L133 SettingsManager]: * to procedures, called more than once=true [2018-11-14 19:10:43,371 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2018-11-14 19:10:43,371 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2018-11-14 19:10:43,372 INFO L133 SettingsManager]: * Use SBE=true [2018-11-14 19:10:43,372 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2018-11-14 19:10:43,372 INFO L133 SettingsManager]: * sizeof long=4 [2018-11-14 19:10:43,372 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2018-11-14 19:10:43,372 INFO L133 SettingsManager]: * sizeof POINTER=4 [2018-11-14 19:10:43,373 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2018-11-14 19:10:43,373 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2018-11-14 19:10:43,373 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2018-11-14 19:10:43,373 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2018-11-14 19:10:43,373 INFO L133 SettingsManager]: * sizeof long double=12 [2018-11-14 19:10:43,374 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2018-11-14 19:10:43,374 INFO L133 SettingsManager]: * Use constant arrays=true [2018-11-14 19:10:43,374 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2018-11-14 19:10:43,374 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2018-11-14 19:10:43,374 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2018-11-14 19:10:43,375 INFO L133 SettingsManager]: * To the following directory=./dump/ [2018-11-14 19:10:43,376 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2018-11-14 19:10:43,376 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-14 19:10:43,377 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2018-11-14 19:10:43,377 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2018-11-14 19:10:43,377 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2018-11-14 19:10:43,377 INFO L133 SettingsManager]: * Trace refinement strategy=CAMEL [2018-11-14 19:10:43,377 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2018-11-14 19:10:43,377 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2018-11-14 19:10:43,378 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2018-11-14 19:10:43,444 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2018-11-14 19:10:43,458 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2018-11-14 19:10:43,462 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2018-11-14 19:10:43,464 INFO L271 PluginConnector]: Initializing CDTParser... [2018-11-14 19:10:43,465 INFO L276 PluginConnector]: CDTParser initialized [2018-11-14 19:10:43,466 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/svcomp/ldv-regression/test27_false-unreach-call_true-termination.c [2018-11-14 19:10:43,535 INFO L218 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/97420f45d/f7bd1daef8a64d6688ccd13bf6372f1f/FLAGed0ecc2c3 [2018-11-14 19:10:44,029 INFO L298 CDTParser]: Found 1 translation units. [2018-11-14 19:10:44,030 INFO L158 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/ldv-regression/test27_false-unreach-call_true-termination.c [2018-11-14 19:10:44,038 INFO L346 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/97420f45d/f7bd1daef8a64d6688ccd13bf6372f1f/FLAGed0ecc2c3 [2018-11-14 19:10:44,054 INFO L354 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/97420f45d/f7bd1daef8a64d6688ccd13bf6372f1f [2018-11-14 19:10:44,065 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2018-11-14 19:10:44,067 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2018-11-14 19:10:44,068 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2018-11-14 19:10:44,069 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2018-11-14 19:10:44,073 INFO L276 PluginConnector]: CACSL2BoogieTranslator initialized [2018-11-14 19:10:44,074 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 14.11 07:10:44" (1/1) ... [2018-11-14 19:10:44,077 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@6436c59b and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 07:10:44, skipping insertion in model container [2018-11-14 19:10:44,078 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 14.11 07:10:44" (1/1) ... [2018-11-14 19:10:44,087 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2018-11-14 19:10:44,114 INFO L176 MainTranslator]: Built tables and reachable declarations [2018-11-14 19:10:44,410 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-14 19:10:44,423 INFO L191 MainTranslator]: Completed pre-run [2018-11-14 19:10:44,459 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-14 19:10:44,489 INFO L195 MainTranslator]: Completed translation [2018-11-14 19:10:44,489 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 07:10:44 WrapperNode [2018-11-14 19:10:44,489 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2018-11-14 19:10:44,490 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2018-11-14 19:10:44,490 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2018-11-14 19:10:44,490 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2018-11-14 19:10:44,503 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 07:10:44" (1/1) ... [2018-11-14 19:10:44,503 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 07:10:44" (1/1) ... [2018-11-14 19:10:44,513 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 07:10:44" (1/1) ... [2018-11-14 19:10:44,513 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 07:10:44" (1/1) ... [2018-11-14 19:10:44,538 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 07:10:44" (1/1) ... [2018-11-14 19:10:44,554 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 07:10:44" (1/1) ... [2018-11-14 19:10:44,556 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 07:10:44" (1/1) ... [2018-11-14 19:10:44,559 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2018-11-14 19:10:44,560 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2018-11-14 19:10:44,560 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2018-11-14 19:10:44,560 INFO L276 PluginConnector]: RCFGBuilder initialized [2018-11-14 19:10:44,561 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 07:10:44" (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:10:44,698 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2018-11-14 19:10:44,698 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2018-11-14 19:10:44,698 INFO L138 BoogieDeclarations]: Found implementation of procedure check [2018-11-14 19:10:44,698 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2018-11-14 19:10:44,698 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_error [2018-11-14 19:10:44,698 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_nondet_int [2018-11-14 19:10:44,699 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_nondet_pointer [2018-11-14 19:10:44,699 INFO L130 BoogieDeclarations]: Found specification of procedure check [2018-11-14 19:10:44,699 INFO L130 BoogieDeclarations]: Found specification of procedure read~$Pointer$ [2018-11-14 19:10:44,699 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2018-11-14 19:10:44,699 INFO L130 BoogieDeclarations]: Found specification of procedure main [2018-11-14 19:10:44,699 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.alloc [2018-11-14 19:10:44,700 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2018-11-14 19:10:44,700 INFO L130 BoogieDeclarations]: Found specification of procedure write~$Pointer$ [2018-11-14 19:10:44,700 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2018-11-14 19:10:44,700 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2018-11-14 19:10:44,700 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2018-11-14 19:10:44,701 INFO L130 BoogieDeclarations]: Found specification of procedure write~unchecked~int [2018-11-14 19:10:45,686 INFO L278 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2018-11-14 19:10:45,687 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 14.11 07:10:45 BoogieIcfgContainer [2018-11-14 19:10:45,687 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2018-11-14 19:10:45,689 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2018-11-14 19:10:45,689 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2018-11-14 19:10:45,692 INFO L276 PluginConnector]: TraceAbstraction initialized [2018-11-14 19:10:45,692 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 14.11 07:10:44" (1/3) ... [2018-11-14 19:10:45,693 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@6d36384a and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 14.11 07:10:45, skipping insertion in model container [2018-11-14 19:10:45,693 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 07:10:44" (2/3) ... [2018-11-14 19:10:45,694 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@6d36384a and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 14.11 07:10:45, skipping insertion in model container [2018-11-14 19:10:45,694 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 14.11 07:10:45" (3/3) ... [2018-11-14 19:10:45,696 INFO L112 eAbstractionObserver]: Analyzing ICFG test27_false-unreach-call_true-termination.c [2018-11-14 19:10:45,705 INFO L136 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2018-11-14 19:10:45,714 INFO L148 ceAbstractionStarter]: Appying trace abstraction to program that has 1 error locations. [2018-11-14 19:10:45,728 INFO L257 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2018-11-14 19:10:45,761 INFO L133 ementStrategyFactory]: Using default assertion order modulation [2018-11-14 19:10:45,761 INFO L382 AbstractCegarLoop]: Interprodecural is true [2018-11-14 19:10:45,762 INFO L383 AbstractCegarLoop]: Hoare is true [2018-11-14 19:10:45,762 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2018-11-14 19:10:45,762 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2018-11-14 19:10:45,762 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2018-11-14 19:10:45,763 INFO L387 AbstractCegarLoop]: Difference is false [2018-11-14 19:10:45,763 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2018-11-14 19:10:45,763 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2018-11-14 19:10:45,782 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states. [2018-11-14 19:10:45,788 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 18 [2018-11-14 19:10:45,788 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:10:45,789 INFO L375 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 19:10:45,792 INFO L423 AbstractCegarLoop]: === Iteration 1 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:10:45,798 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:10:45,798 INFO L82 PathProgramCache]: Analyzing trace with hash -1801897061, now seen corresponding path program 1 times [2018-11-14 19:10:45,801 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:10:45,801 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:10:45,855 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:45,856 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 19:10:45,856 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:45,916 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:45,976 INFO L256 TraceCheckUtils]: 0: Hoare triple {30#true} call ULTIMATE.init(); {30#true} is VALID [2018-11-14 19:10:45,980 INFO L273 TraceCheckUtils]: 1: Hoare triple {30#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {30#true} is VALID [2018-11-14 19:10:45,981 INFO L273 TraceCheckUtils]: 2: Hoare triple {30#true} assume true; {30#true} is VALID [2018-11-14 19:10:45,981 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {30#true} {30#true} #62#return; {30#true} is VALID [2018-11-14 19:10:45,981 INFO L256 TraceCheckUtils]: 4: Hoare triple {30#true} call #t~ret18 := main(); {30#true} is VALID [2018-11-14 19:10:45,982 INFO L273 TraceCheckUtils]: 5: Hoare triple {30#true} call ~#cont~0.base, ~#cont~0.offset := #Ultimate.alloc(4);call ~#dummy~0.base, ~#dummy~0.offset := #Ultimate.alloc(4);call ~#dummies~0.base, ~#dummies~0.offset := #Ultimate.alloc(40);call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(40);havoc ~i~0;havoc ~pa~0.base, ~pa~0.offset;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~i~0 := #t~nondet4;havoc #t~nondet4;~j~0 := 0; {30#true} is VALID [2018-11-14 19:10:45,983 INFO L273 TraceCheckUtils]: 6: Hoare triple {30#true} assume !true; {31#false} is VALID [2018-11-14 19:10:45,984 INFO L273 TraceCheckUtils]: 7: Hoare triple {31#false} assume ~i~0 >= 0 && ~i~0 < 9;call write~int(~i~0, ~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4);call write~$Pointer$(~#a~0.base, ~#a~0.offset + ~i~0 * 4, ~#dummy~0.base, ~#dummy~0.offset + 0, 4);call write~$Pointer$(~#dummy~0.base, ~#dummy~0.offset, ~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call write~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + 0, ~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem9.base, #t~mem9.offset := read~$Pointer$(#t~mem8.base, #t~mem8.offset + ~i~0 * 4, 4);call #t~mem10.base, #t~mem10.offset := read~$Pointer$(#t~mem9.base, #t~mem9.offset + 0, 4);~pa~0.base, ~pa~0.offset := #t~mem10.base, #t~mem10.offset + ~i~0 * 4;havoc #t~mem10.base, #t~mem10.offset;havoc #t~mem9.base, #t~mem9.offset;havoc #t~mem8.base, #t~mem8.offset;call #t~mem11 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {31#false} is VALID [2018-11-14 19:10:45,984 INFO L273 TraceCheckUtils]: 8: Hoare triple {31#false} assume #t~mem11 > 0;havoc #t~mem11;call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(#t~mem12.base, #t~mem12.offset + 0, 4);call #t~mem14 := read~int(#t~mem13.base, #t~mem13.offset + ~i~0 * 4, 4);~i~0 := #t~mem14 - 10;havoc #t~mem12.base, #t~mem12.offset;havoc #t~mem13.base, #t~mem13.offset;havoc #t~mem14; {31#false} is VALID [2018-11-14 19:10:45,985 INFO L273 TraceCheckUtils]: 9: Hoare triple {31#false} assume !true; {31#false} is VALID [2018-11-14 19:10:45,985 INFO L256 TraceCheckUtils]: 10: Hoare triple {31#false} call #t~ret17 := check(~#cont~0.base, ~#cont~0.offset, ~i~0); {30#true} is VALID [2018-11-14 19:10:45,985 INFO L273 TraceCheckUtils]: 11: Hoare triple {30#true} ~pc.base, ~pc.offset := #in~pc.base, #in~pc.offset;~i := #in~i;call #t~mem0.base, #t~mem0.offset := read~$Pointer$(~pc.base, ~pc.offset + 0, 4);call #t~mem1.base, #t~mem1.offset := read~$Pointer$(#t~mem0.base, #t~mem0.offset + ~i * 4, 4);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(#t~mem1.base, #t~mem1.offset + 0, 4);call #t~mem3 := read~int(#t~mem2.base, #t~mem2.offset + ~i * 4, 4);#res := (if #t~mem3 == ~i then 1 else 0);havoc #t~mem3;havoc #t~mem0.base, #t~mem0.offset;havoc #t~mem1.base, #t~mem1.offset;havoc #t~mem2.base, #t~mem2.offset; {30#true} is VALID [2018-11-14 19:10:45,986 INFO L273 TraceCheckUtils]: 12: Hoare triple {30#true} assume true; {30#true} is VALID [2018-11-14 19:10:45,986 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {30#true} {31#false} #60#return; {31#false} is VALID [2018-11-14 19:10:45,987 INFO L273 TraceCheckUtils]: 14: Hoare triple {31#false} assume -2147483648 <= #t~ret17 && #t~ret17 <= 2147483647; {31#false} is VALID [2018-11-14 19:10:45,987 INFO L273 TraceCheckUtils]: 15: Hoare triple {31#false} assume #t~ret17 == 0;havoc #t~ret17; {31#false} is VALID [2018-11-14 19:10:45,987 INFO L273 TraceCheckUtils]: 16: Hoare triple {31#false} assume !false; {31#false} is VALID [2018-11-14 19:10:45,990 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:10:45,993 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-14 19:10:45,993 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2018-11-14 19:10:45,998 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 17 [2018-11-14 19:10:46,001 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 19:10:46,005 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 2 states. [2018-11-14 19:10:46,105 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 17 edges. 17 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:10:46,106 INFO L459 AbstractCegarLoop]: Interpolant automaton has 2 states [2018-11-14 19:10:46,115 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 2 interpolants. [2018-11-14 19:10:46,116 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2018-11-14 19:10:46,119 INFO L87 Difference]: Start difference. First operand 27 states. Second operand 2 states. [2018-11-14 19:10:46,279 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:46,280 INFO L93 Difference]: Finished difference Result 45 states and 55 transitions. [2018-11-14 19:10:46,280 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 2 states. [2018-11-14 19:10:46,280 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 17 [2018-11-14 19:10:46,281 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 19:10:46,282 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 2 states. [2018-11-14 19:10:46,297 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 55 transitions. [2018-11-14 19:10:46,297 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 2 states. [2018-11-14 19:10:46,303 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 55 transitions. [2018-11-14 19:10:46,303 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 2 states and 55 transitions. [2018-11-14 19:10:46,515 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 55 edges. 55 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:10:46,525 INFO L225 Difference]: With dead ends: 45 [2018-11-14 19:10:46,526 INFO L226 Difference]: Without dead ends: 22 [2018-11-14 19:10:46,529 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:10:46,546 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 22 states. [2018-11-14 19:10:46,588 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 22 to 22. [2018-11-14 19:10:46,588 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 19:10:46,589 INFO L82 GeneralOperation]: Start isEquivalent. First operand 22 states. Second operand 22 states. [2018-11-14 19:10:46,589 INFO L74 IsIncluded]: Start isIncluded. First operand 22 states. Second operand 22 states. [2018-11-14 19:10:46,589 INFO L87 Difference]: Start difference. First operand 22 states. Second operand 22 states. [2018-11-14 19:10:46,593 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:46,593 INFO L93 Difference]: Finished difference Result 22 states and 23 transitions. [2018-11-14 19:10:46,593 INFO L276 IsEmpty]: Start isEmpty. Operand 22 states and 23 transitions. [2018-11-14 19:10:46,594 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:46,594 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:46,594 INFO L74 IsIncluded]: Start isIncluded. First operand 22 states. Second operand 22 states. [2018-11-14 19:10:46,594 INFO L87 Difference]: Start difference. First operand 22 states. Second operand 22 states. [2018-11-14 19:10:46,598 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:46,598 INFO L93 Difference]: Finished difference Result 22 states and 23 transitions. [2018-11-14 19:10:46,598 INFO L276 IsEmpty]: Start isEmpty. Operand 22 states and 23 transitions. [2018-11-14 19:10:46,599 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:46,599 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:46,600 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 19:10:46,600 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 19:10:46,600 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 22 states. [2018-11-14 19:10:46,602 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 22 states to 22 states and 23 transitions. [2018-11-14 19:10:46,604 INFO L78 Accepts]: Start accepts. Automaton has 22 states and 23 transitions. Word has length 17 [2018-11-14 19:10:46,605 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 19:10:46,605 INFO L480 AbstractCegarLoop]: Abstraction has 22 states and 23 transitions. [2018-11-14 19:10:46,605 INFO L481 AbstractCegarLoop]: Interpolant automaton has 2 states. [2018-11-14 19:10:46,605 INFO L276 IsEmpty]: Start isEmpty. Operand 22 states and 23 transitions. [2018-11-14 19:10:46,606 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 21 [2018-11-14 19:10:46,606 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:10:46,606 INFO L375 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 19:10:46,607 INFO L423 AbstractCegarLoop]: === Iteration 2 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:10:46,607 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:10:46,607 INFO L82 PathProgramCache]: Analyzing trace with hash 1616588955, now seen corresponding path program 1 times [2018-11-14 19:10:46,608 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:10:46,608 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:10:46,609 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:46,609 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 19:10:46,609 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:46,634 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:46,701 INFO L256 TraceCheckUtils]: 0: Hoare triple {167#true} call ULTIMATE.init(); {167#true} is VALID [2018-11-14 19:10:46,702 INFO L273 TraceCheckUtils]: 1: Hoare triple {167#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {167#true} is VALID [2018-11-14 19:10:46,702 INFO L273 TraceCheckUtils]: 2: Hoare triple {167#true} assume true; {167#true} is VALID [2018-11-14 19:10:46,702 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {167#true} {167#true} #62#return; {167#true} is VALID [2018-11-14 19:10:46,702 INFO L256 TraceCheckUtils]: 4: Hoare triple {167#true} call #t~ret18 := main(); {167#true} is VALID [2018-11-14 19:10:46,706 INFO L273 TraceCheckUtils]: 5: Hoare triple {167#true} call ~#cont~0.base, ~#cont~0.offset := #Ultimate.alloc(4);call ~#dummy~0.base, ~#dummy~0.offset := #Ultimate.alloc(4);call ~#dummies~0.base, ~#dummies~0.offset := #Ultimate.alloc(40);call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(40);havoc ~i~0;havoc ~pa~0.base, ~pa~0.offset;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~i~0 := #t~nondet4;havoc #t~nondet4;~j~0 := 0; {169#(= main_~j~0 0)} is VALID [2018-11-14 19:10:46,724 INFO L273 TraceCheckUtils]: 6: Hoare triple {169#(= main_~j~0 0)} assume true; {169#(= main_~j~0 0)} is VALID [2018-11-14 19:10:46,740 INFO L273 TraceCheckUtils]: 7: Hoare triple {169#(= main_~j~0 0)} assume !(~j~0 < 10); {168#false} is VALID [2018-11-14 19:10:46,740 INFO L273 TraceCheckUtils]: 8: Hoare triple {168#false} assume ~i~0 >= 0 && ~i~0 < 9;call write~int(~i~0, ~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4);call write~$Pointer$(~#a~0.base, ~#a~0.offset + ~i~0 * 4, ~#dummy~0.base, ~#dummy~0.offset + 0, 4);call write~$Pointer$(~#dummy~0.base, ~#dummy~0.offset, ~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call write~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + 0, ~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem9.base, #t~mem9.offset := read~$Pointer$(#t~mem8.base, #t~mem8.offset + ~i~0 * 4, 4);call #t~mem10.base, #t~mem10.offset := read~$Pointer$(#t~mem9.base, #t~mem9.offset + 0, 4);~pa~0.base, ~pa~0.offset := #t~mem10.base, #t~mem10.offset + ~i~0 * 4;havoc #t~mem10.base, #t~mem10.offset;havoc #t~mem9.base, #t~mem9.offset;havoc #t~mem8.base, #t~mem8.offset;call #t~mem11 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {168#false} is VALID [2018-11-14 19:10:46,740 INFO L273 TraceCheckUtils]: 9: Hoare triple {168#false} assume #t~mem11 > 0;havoc #t~mem11;call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(#t~mem12.base, #t~mem12.offset + 0, 4);call #t~mem14 := read~int(#t~mem13.base, #t~mem13.offset + ~i~0 * 4, 4);~i~0 := #t~mem14 - 10;havoc #t~mem12.base, #t~mem12.offset;havoc #t~mem13.base, #t~mem13.offset;havoc #t~mem14; {168#false} is VALID [2018-11-14 19:10:46,741 INFO L273 TraceCheckUtils]: 10: Hoare triple {168#false} assume true; {168#false} is VALID [2018-11-14 19:10:46,741 INFO L273 TraceCheckUtils]: 11: Hoare triple {168#false} call #t~mem15 := read~int(~pa~0.base, ~pa~0.offset, 4); {168#false} is VALID [2018-11-14 19:10:46,741 INFO L273 TraceCheckUtils]: 12: Hoare triple {168#false} assume !(~i~0 < #t~mem15);havoc #t~mem15; {168#false} is VALID [2018-11-14 19:10:46,742 INFO L256 TraceCheckUtils]: 13: Hoare triple {168#false} call #t~ret17 := check(~#cont~0.base, ~#cont~0.offset, ~i~0); {167#true} is VALID [2018-11-14 19:10:46,742 INFO L273 TraceCheckUtils]: 14: Hoare triple {167#true} ~pc.base, ~pc.offset := #in~pc.base, #in~pc.offset;~i := #in~i;call #t~mem0.base, #t~mem0.offset := read~$Pointer$(~pc.base, ~pc.offset + 0, 4);call #t~mem1.base, #t~mem1.offset := read~$Pointer$(#t~mem0.base, #t~mem0.offset + ~i * 4, 4);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(#t~mem1.base, #t~mem1.offset + 0, 4);call #t~mem3 := read~int(#t~mem2.base, #t~mem2.offset + ~i * 4, 4);#res := (if #t~mem3 == ~i then 1 else 0);havoc #t~mem3;havoc #t~mem0.base, #t~mem0.offset;havoc #t~mem1.base, #t~mem1.offset;havoc #t~mem2.base, #t~mem2.offset; {167#true} is VALID [2018-11-14 19:10:46,743 INFO L273 TraceCheckUtils]: 15: Hoare triple {167#true} assume true; {167#true} is VALID [2018-11-14 19:10:46,743 INFO L268 TraceCheckUtils]: 16: Hoare quadruple {167#true} {168#false} #60#return; {168#false} is VALID [2018-11-14 19:10:46,743 INFO L273 TraceCheckUtils]: 17: Hoare triple {168#false} assume -2147483648 <= #t~ret17 && #t~ret17 <= 2147483647; {168#false} is VALID [2018-11-14 19:10:46,743 INFO L273 TraceCheckUtils]: 18: Hoare triple {168#false} assume #t~ret17 == 0;havoc #t~ret17; {168#false} is VALID [2018-11-14 19:10:46,744 INFO L273 TraceCheckUtils]: 19: Hoare triple {168#false} assume !false; {168#false} is VALID [2018-11-14 19:10:46,745 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:10:46,746 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-14 19:10:46,746 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2018-11-14 19:10:46,747 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 20 [2018-11-14 19:10:46,748 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 19:10:46,748 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2018-11-14 19:10:46,946 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 20 edges. 20 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:10:46,946 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2018-11-14 19:10:46,947 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2018-11-14 19:10:46,947 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2018-11-14 19:10:46,947 INFO L87 Difference]: Start difference. First operand 22 states and 23 transitions. Second operand 3 states. [2018-11-14 19:10:47,399 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:47,399 INFO L93 Difference]: Finished difference Result 38 states and 40 transitions. [2018-11-14 19:10:47,399 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2018-11-14 19:10:47,400 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 20 [2018-11-14 19:10:47,400 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 19:10:47,400 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2018-11-14 19:10:47,404 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 40 transitions. [2018-11-14 19:10:47,404 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2018-11-14 19:10:47,407 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 40 transitions. [2018-11-14 19:10:47,407 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 40 transitions. [2018-11-14 19:10:47,551 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 40 edges. 40 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:10:47,554 INFO L225 Difference]: With dead ends: 38 [2018-11-14 19:10:47,554 INFO L226 Difference]: Without dead ends: 25 [2018-11-14 19:10:47,555 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 3 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2018-11-14 19:10:47,556 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 25 states. [2018-11-14 19:10:47,569 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 25 to 24. [2018-11-14 19:10:47,570 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 19:10:47,570 INFO L82 GeneralOperation]: Start isEquivalent. First operand 25 states. Second operand 24 states. [2018-11-14 19:10:47,570 INFO L74 IsIncluded]: Start isIncluded. First operand 25 states. Second operand 24 states. [2018-11-14 19:10:47,570 INFO L87 Difference]: Start difference. First operand 25 states. Second operand 24 states. [2018-11-14 19:10:47,572 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:47,572 INFO L93 Difference]: Finished difference Result 25 states and 26 transitions. [2018-11-14 19:10:47,573 INFO L276 IsEmpty]: Start isEmpty. Operand 25 states and 26 transitions. [2018-11-14 19:10:47,573 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:47,573 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:47,574 INFO L74 IsIncluded]: Start isIncluded. First operand 24 states. Second operand 25 states. [2018-11-14 19:10:47,574 INFO L87 Difference]: Start difference. First operand 24 states. Second operand 25 states. [2018-11-14 19:10:47,576 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:47,576 INFO L93 Difference]: Finished difference Result 25 states and 26 transitions. [2018-11-14 19:10:47,577 INFO L276 IsEmpty]: Start isEmpty. Operand 25 states and 26 transitions. [2018-11-14 19:10:47,577 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:47,577 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:47,578 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 19:10:47,578 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 19:10:47,578 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 24 states. [2018-11-14 19:10:47,580 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 24 states to 24 states and 25 transitions. [2018-11-14 19:10:47,580 INFO L78 Accepts]: Start accepts. Automaton has 24 states and 25 transitions. Word has length 20 [2018-11-14 19:10:47,580 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 19:10:47,581 INFO L480 AbstractCegarLoop]: Abstraction has 24 states and 25 transitions. [2018-11-14 19:10:47,581 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2018-11-14 19:10:47,581 INFO L276 IsEmpty]: Start isEmpty. Operand 24 states and 25 transitions. [2018-11-14 19:10:47,582 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 24 [2018-11-14 19:10:47,582 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:10:47,582 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, 1, 1] [2018-11-14 19:10:47,582 INFO L423 AbstractCegarLoop]: === Iteration 3 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:10:47,583 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:10:47,583 INFO L82 PathProgramCache]: Analyzing trace with hash -82078787, now seen corresponding path program 1 times [2018-11-14 19:10:47,583 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:10:47,583 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:10:47,584 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:47,584 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 19:10:47,584 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:47,617 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:47,727 INFO L256 TraceCheckUtils]: 0: Hoare triple {308#true} call ULTIMATE.init(); {308#true} is VALID [2018-11-14 19:10:47,728 INFO L273 TraceCheckUtils]: 1: Hoare triple {308#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {308#true} is VALID [2018-11-14 19:10:47,728 INFO L273 TraceCheckUtils]: 2: Hoare triple {308#true} assume true; {308#true} is VALID [2018-11-14 19:10:47,728 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {308#true} {308#true} #62#return; {308#true} is VALID [2018-11-14 19:10:47,728 INFO L256 TraceCheckUtils]: 4: Hoare triple {308#true} call #t~ret18 := main(); {308#true} is VALID [2018-11-14 19:10:47,729 INFO L273 TraceCheckUtils]: 5: Hoare triple {308#true} call ~#cont~0.base, ~#cont~0.offset := #Ultimate.alloc(4);call ~#dummy~0.base, ~#dummy~0.offset := #Ultimate.alloc(4);call ~#dummies~0.base, ~#dummies~0.offset := #Ultimate.alloc(40);call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(40);havoc ~i~0;havoc ~pa~0.base, ~pa~0.offset;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~i~0 := #t~nondet4;havoc #t~nondet4;~j~0 := 0; {310#(= main_~j~0 0)} is VALID [2018-11-14 19:10:47,730 INFO L273 TraceCheckUtils]: 6: Hoare triple {310#(= main_~j~0 0)} assume true; {310#(= main_~j~0 0)} is VALID [2018-11-14 19:10:47,730 INFO L273 TraceCheckUtils]: 7: Hoare triple {310#(= main_~j~0 0)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {310#(= main_~j~0 0)} is VALID [2018-11-14 19:10:47,732 INFO L273 TraceCheckUtils]: 8: Hoare triple {310#(= main_~j~0 0)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {311#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:47,733 INFO L273 TraceCheckUtils]: 9: Hoare triple {311#(<= main_~j~0 1)} assume true; {311#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:47,734 INFO L273 TraceCheckUtils]: 10: Hoare triple {311#(<= main_~j~0 1)} assume !(~j~0 < 10); {309#false} is VALID [2018-11-14 19:10:47,734 INFO L273 TraceCheckUtils]: 11: Hoare triple {309#false} assume ~i~0 >= 0 && ~i~0 < 9;call write~int(~i~0, ~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4);call write~$Pointer$(~#a~0.base, ~#a~0.offset + ~i~0 * 4, ~#dummy~0.base, ~#dummy~0.offset + 0, 4);call write~$Pointer$(~#dummy~0.base, ~#dummy~0.offset, ~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call write~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + 0, ~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem9.base, #t~mem9.offset := read~$Pointer$(#t~mem8.base, #t~mem8.offset + ~i~0 * 4, 4);call #t~mem10.base, #t~mem10.offset := read~$Pointer$(#t~mem9.base, #t~mem9.offset + 0, 4);~pa~0.base, ~pa~0.offset := #t~mem10.base, #t~mem10.offset + ~i~0 * 4;havoc #t~mem10.base, #t~mem10.offset;havoc #t~mem9.base, #t~mem9.offset;havoc #t~mem8.base, #t~mem8.offset;call #t~mem11 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {309#false} is VALID [2018-11-14 19:10:47,734 INFO L273 TraceCheckUtils]: 12: Hoare triple {309#false} assume #t~mem11 > 0;havoc #t~mem11;call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(#t~mem12.base, #t~mem12.offset + 0, 4);call #t~mem14 := read~int(#t~mem13.base, #t~mem13.offset + ~i~0 * 4, 4);~i~0 := #t~mem14 - 10;havoc #t~mem12.base, #t~mem12.offset;havoc #t~mem13.base, #t~mem13.offset;havoc #t~mem14; {309#false} is VALID [2018-11-14 19:10:47,735 INFO L273 TraceCheckUtils]: 13: Hoare triple {309#false} assume true; {309#false} is VALID [2018-11-14 19:10:47,735 INFO L273 TraceCheckUtils]: 14: Hoare triple {309#false} call #t~mem15 := read~int(~pa~0.base, ~pa~0.offset, 4); {309#false} is VALID [2018-11-14 19:10:47,735 INFO L273 TraceCheckUtils]: 15: Hoare triple {309#false} assume !(~i~0 < #t~mem15);havoc #t~mem15; {309#false} is VALID [2018-11-14 19:10:47,736 INFO L256 TraceCheckUtils]: 16: Hoare triple {309#false} call #t~ret17 := check(~#cont~0.base, ~#cont~0.offset, ~i~0); {308#true} is VALID [2018-11-14 19:10:47,736 INFO L273 TraceCheckUtils]: 17: Hoare triple {308#true} ~pc.base, ~pc.offset := #in~pc.base, #in~pc.offset;~i := #in~i;call #t~mem0.base, #t~mem0.offset := read~$Pointer$(~pc.base, ~pc.offset + 0, 4);call #t~mem1.base, #t~mem1.offset := read~$Pointer$(#t~mem0.base, #t~mem0.offset + ~i * 4, 4);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(#t~mem1.base, #t~mem1.offset + 0, 4);call #t~mem3 := read~int(#t~mem2.base, #t~mem2.offset + ~i * 4, 4);#res := (if #t~mem3 == ~i then 1 else 0);havoc #t~mem3;havoc #t~mem0.base, #t~mem0.offset;havoc #t~mem1.base, #t~mem1.offset;havoc #t~mem2.base, #t~mem2.offset; {308#true} is VALID [2018-11-14 19:10:47,736 INFO L273 TraceCheckUtils]: 18: Hoare triple {308#true} assume true; {308#true} is VALID [2018-11-14 19:10:47,737 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {308#true} {309#false} #60#return; {309#false} is VALID [2018-11-14 19:10:47,737 INFO L273 TraceCheckUtils]: 20: Hoare triple {309#false} assume -2147483648 <= #t~ret17 && #t~ret17 <= 2147483647; {309#false} is VALID [2018-11-14 19:10:47,737 INFO L273 TraceCheckUtils]: 21: Hoare triple {309#false} assume #t~ret17 == 0;havoc #t~ret17; {309#false} is VALID [2018-11-14 19:10:47,738 INFO L273 TraceCheckUtils]: 22: Hoare triple {309#false} assume !false; {309#false} is VALID [2018-11-14 19:10:47,739 INFO L134 CoverageAnalysis]: Checked inductivity of 2 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 19:10:47,739 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-14 19:10:47,740 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:10:47,753 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 19:10:47,791 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:47,812 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:47,818 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-14 19:10:48,128 INFO L256 TraceCheckUtils]: 0: Hoare triple {308#true} call ULTIMATE.init(); {308#true} is VALID [2018-11-14 19:10:48,128 INFO L273 TraceCheckUtils]: 1: Hoare triple {308#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {308#true} is VALID [2018-11-14 19:10:48,129 INFO L273 TraceCheckUtils]: 2: Hoare triple {308#true} assume true; {308#true} is VALID [2018-11-14 19:10:48,129 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {308#true} {308#true} #62#return; {308#true} is VALID [2018-11-14 19:10:48,129 INFO L256 TraceCheckUtils]: 4: Hoare triple {308#true} call #t~ret18 := main(); {308#true} is VALID [2018-11-14 19:10:48,138 INFO L273 TraceCheckUtils]: 5: Hoare triple {308#true} call ~#cont~0.base, ~#cont~0.offset := #Ultimate.alloc(4);call ~#dummy~0.base, ~#dummy~0.offset := #Ultimate.alloc(4);call ~#dummies~0.base, ~#dummies~0.offset := #Ultimate.alloc(40);call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(40);havoc ~i~0;havoc ~pa~0.base, ~pa~0.offset;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~i~0 := #t~nondet4;havoc #t~nondet4;~j~0 := 0; {330#(<= main_~j~0 0)} is VALID [2018-11-14 19:10:48,142 INFO L273 TraceCheckUtils]: 6: Hoare triple {330#(<= main_~j~0 0)} assume true; {330#(<= main_~j~0 0)} is VALID [2018-11-14 19:10:48,144 INFO L273 TraceCheckUtils]: 7: Hoare triple {330#(<= main_~j~0 0)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {330#(<= main_~j~0 0)} is VALID [2018-11-14 19:10:48,145 INFO L273 TraceCheckUtils]: 8: Hoare triple {330#(<= main_~j~0 0)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {311#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:48,146 INFO L273 TraceCheckUtils]: 9: Hoare triple {311#(<= main_~j~0 1)} assume true; {311#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:48,157 INFO L273 TraceCheckUtils]: 10: Hoare triple {311#(<= main_~j~0 1)} assume !(~j~0 < 10); {309#false} is VALID [2018-11-14 19:10:48,157 INFO L273 TraceCheckUtils]: 11: Hoare triple {309#false} assume ~i~0 >= 0 && ~i~0 < 9;call write~int(~i~0, ~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4);call write~$Pointer$(~#a~0.base, ~#a~0.offset + ~i~0 * 4, ~#dummy~0.base, ~#dummy~0.offset + 0, 4);call write~$Pointer$(~#dummy~0.base, ~#dummy~0.offset, ~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call write~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + 0, ~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem9.base, #t~mem9.offset := read~$Pointer$(#t~mem8.base, #t~mem8.offset + ~i~0 * 4, 4);call #t~mem10.base, #t~mem10.offset := read~$Pointer$(#t~mem9.base, #t~mem9.offset + 0, 4);~pa~0.base, ~pa~0.offset := #t~mem10.base, #t~mem10.offset + ~i~0 * 4;havoc #t~mem10.base, #t~mem10.offset;havoc #t~mem9.base, #t~mem9.offset;havoc #t~mem8.base, #t~mem8.offset;call #t~mem11 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {309#false} is VALID [2018-11-14 19:10:48,158 INFO L273 TraceCheckUtils]: 12: Hoare triple {309#false} assume #t~mem11 > 0;havoc #t~mem11;call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(#t~mem12.base, #t~mem12.offset + 0, 4);call #t~mem14 := read~int(#t~mem13.base, #t~mem13.offset + ~i~0 * 4, 4);~i~0 := #t~mem14 - 10;havoc #t~mem12.base, #t~mem12.offset;havoc #t~mem13.base, #t~mem13.offset;havoc #t~mem14; {309#false} is VALID [2018-11-14 19:10:48,158 INFO L273 TraceCheckUtils]: 13: Hoare triple {309#false} assume true; {309#false} is VALID [2018-11-14 19:10:48,158 INFO L273 TraceCheckUtils]: 14: Hoare triple {309#false} call #t~mem15 := read~int(~pa~0.base, ~pa~0.offset, 4); {309#false} is VALID [2018-11-14 19:10:48,159 INFO L273 TraceCheckUtils]: 15: Hoare triple {309#false} assume !(~i~0 < #t~mem15);havoc #t~mem15; {309#false} is VALID [2018-11-14 19:10:48,159 INFO L256 TraceCheckUtils]: 16: Hoare triple {309#false} call #t~ret17 := check(~#cont~0.base, ~#cont~0.offset, ~i~0); {309#false} is VALID [2018-11-14 19:10:48,159 INFO L273 TraceCheckUtils]: 17: Hoare triple {309#false} ~pc.base, ~pc.offset := #in~pc.base, #in~pc.offset;~i := #in~i;call #t~mem0.base, #t~mem0.offset := read~$Pointer$(~pc.base, ~pc.offset + 0, 4);call #t~mem1.base, #t~mem1.offset := read~$Pointer$(#t~mem0.base, #t~mem0.offset + ~i * 4, 4);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(#t~mem1.base, #t~mem1.offset + 0, 4);call #t~mem3 := read~int(#t~mem2.base, #t~mem2.offset + ~i * 4, 4);#res := (if #t~mem3 == ~i then 1 else 0);havoc #t~mem3;havoc #t~mem0.base, #t~mem0.offset;havoc #t~mem1.base, #t~mem1.offset;havoc #t~mem2.base, #t~mem2.offset; {309#false} is VALID [2018-11-14 19:10:48,160 INFO L273 TraceCheckUtils]: 18: Hoare triple {309#false} assume true; {309#false} is VALID [2018-11-14 19:10:48,160 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {309#false} {309#false} #60#return; {309#false} is VALID [2018-11-14 19:10:48,160 INFO L273 TraceCheckUtils]: 20: Hoare triple {309#false} assume -2147483648 <= #t~ret17 && #t~ret17 <= 2147483647; {309#false} is VALID [2018-11-14 19:10:48,161 INFO L273 TraceCheckUtils]: 21: Hoare triple {309#false} assume #t~ret17 == 0;havoc #t~ret17; {309#false} is VALID [2018-11-14 19:10:48,161 INFO L273 TraceCheckUtils]: 22: Hoare triple {309#false} assume !false; {309#false} is VALID [2018-11-14 19:10:48,163 INFO L134 CoverageAnalysis]: Checked inductivity of 2 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 19:10:48,187 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-14 19:10:48,187 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4] total 5 [2018-11-14 19:10:48,188 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 23 [2018-11-14 19:10:48,188 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 19:10:48,188 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states. [2018-11-14 19:10:48,338 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 31 edges. 31 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:10:48,338 INFO L459 AbstractCegarLoop]: Interpolant automaton has 5 states [2018-11-14 19:10:48,339 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2018-11-14 19:10:48,339 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=10, Invalid=10, Unknown=0, NotChecked=0, Total=20 [2018-11-14 19:10:48,339 INFO L87 Difference]: Start difference. First operand 24 states and 25 transitions. Second operand 5 states. [2018-11-14 19:10:48,582 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:48,582 INFO L93 Difference]: Finished difference Result 41 states and 43 transitions. [2018-11-14 19:10:48,582 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2018-11-14 19:10:48,583 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 23 [2018-11-14 19:10:48,583 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 19:10:48,583 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2018-11-14 19:10:48,588 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 43 transitions. [2018-11-14 19:10:48,588 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2018-11-14 19:10:48,590 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 43 transitions. [2018-11-14 19:10:48,591 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 43 transitions. [2018-11-14 19:10:48,755 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 43 edges. 43 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:10:48,757 INFO L225 Difference]: With dead ends: 41 [2018-11-14 19:10:48,757 INFO L226 Difference]: Without dead ends: 28 [2018-11-14 19:10:48,758 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 26 GetRequests, 23 SyntacticMatches, 0 SemanticMatches, 3 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=10, Invalid=10, Unknown=0, NotChecked=0, Total=20 [2018-11-14 19:10:48,758 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 28 states. [2018-11-14 19:10:48,779 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 28 to 27. [2018-11-14 19:10:48,779 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 19:10:48,779 INFO L82 GeneralOperation]: Start isEquivalent. First operand 28 states. Second operand 27 states. [2018-11-14 19:10:48,779 INFO L74 IsIncluded]: Start isIncluded. First operand 28 states. Second operand 27 states. [2018-11-14 19:10:48,779 INFO L87 Difference]: Start difference. First operand 28 states. Second operand 27 states. [2018-11-14 19:10:48,782 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:48,783 INFO L93 Difference]: Finished difference Result 28 states and 29 transitions. [2018-11-14 19:10:48,783 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 29 transitions. [2018-11-14 19:10:48,784 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:48,784 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:48,784 INFO L74 IsIncluded]: Start isIncluded. First operand 27 states. Second operand 28 states. [2018-11-14 19:10:48,784 INFO L87 Difference]: Start difference. First operand 27 states. Second operand 28 states. [2018-11-14 19:10:48,787 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:48,787 INFO L93 Difference]: Finished difference Result 28 states and 29 transitions. [2018-11-14 19:10:48,787 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 29 transitions. [2018-11-14 19:10:48,788 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:48,788 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:48,788 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 19:10:48,788 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 19:10:48,788 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 27 states. [2018-11-14 19:10:48,790 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 27 states to 27 states and 28 transitions. [2018-11-14 19:10:48,794 INFO L78 Accepts]: Start accepts. Automaton has 27 states and 28 transitions. Word has length 23 [2018-11-14 19:10:48,794 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 19:10:48,794 INFO L480 AbstractCegarLoop]: Abstraction has 27 states and 28 transitions. [2018-11-14 19:10:48,794 INFO L481 AbstractCegarLoop]: Interpolant automaton has 5 states. [2018-11-14 19:10:48,795 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 28 transitions. [2018-11-14 19:10:48,795 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 27 [2018-11-14 19:10:48,796 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:10:48,796 INFO L375 BasicCegarLoop]: trace histogram [3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 19:10:48,796 INFO L423 AbstractCegarLoop]: === Iteration 4 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:10:48,796 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:10:48,797 INFO L82 PathProgramCache]: Analyzing trace with hash -1788099237, now seen corresponding path program 2 times [2018-11-14 19:10:48,797 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:10:48,797 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:10:48,799 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:48,799 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 19:10:48,799 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:48,854 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:48,994 INFO L256 TraceCheckUtils]: 0: Hoare triple {531#true} call ULTIMATE.init(); {531#true} is VALID [2018-11-14 19:10:48,995 INFO L273 TraceCheckUtils]: 1: Hoare triple {531#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {531#true} is VALID [2018-11-14 19:10:48,995 INFO L273 TraceCheckUtils]: 2: Hoare triple {531#true} assume true; {531#true} is VALID [2018-11-14 19:10:48,996 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {531#true} {531#true} #62#return; {531#true} is VALID [2018-11-14 19:10:48,996 INFO L256 TraceCheckUtils]: 4: Hoare triple {531#true} call #t~ret18 := main(); {531#true} is VALID [2018-11-14 19:10:48,997 INFO L273 TraceCheckUtils]: 5: Hoare triple {531#true} call ~#cont~0.base, ~#cont~0.offset := #Ultimate.alloc(4);call ~#dummy~0.base, ~#dummy~0.offset := #Ultimate.alloc(4);call ~#dummies~0.base, ~#dummies~0.offset := #Ultimate.alloc(40);call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(40);havoc ~i~0;havoc ~pa~0.base, ~pa~0.offset;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~i~0 := #t~nondet4;havoc #t~nondet4;~j~0 := 0; {533#(= main_~j~0 0)} is VALID [2018-11-14 19:10:48,997 INFO L273 TraceCheckUtils]: 6: Hoare triple {533#(= main_~j~0 0)} assume true; {533#(= main_~j~0 0)} is VALID [2018-11-14 19:10:48,998 INFO L273 TraceCheckUtils]: 7: Hoare triple {533#(= main_~j~0 0)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {533#(= main_~j~0 0)} is VALID [2018-11-14 19:10:48,999 INFO L273 TraceCheckUtils]: 8: Hoare triple {533#(= main_~j~0 0)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {534#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:49,000 INFO L273 TraceCheckUtils]: 9: Hoare triple {534#(<= main_~j~0 1)} assume true; {534#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:49,001 INFO L273 TraceCheckUtils]: 10: Hoare triple {534#(<= main_~j~0 1)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {534#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:49,006 INFO L273 TraceCheckUtils]: 11: Hoare triple {534#(<= main_~j~0 1)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {535#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:49,007 INFO L273 TraceCheckUtils]: 12: Hoare triple {535#(<= main_~j~0 2)} assume true; {535#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:49,007 INFO L273 TraceCheckUtils]: 13: Hoare triple {535#(<= main_~j~0 2)} assume !(~j~0 < 10); {532#false} is VALID [2018-11-14 19:10:49,008 INFO L273 TraceCheckUtils]: 14: Hoare triple {532#false} assume ~i~0 >= 0 && ~i~0 < 9;call write~int(~i~0, ~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4);call write~$Pointer$(~#a~0.base, ~#a~0.offset + ~i~0 * 4, ~#dummy~0.base, ~#dummy~0.offset + 0, 4);call write~$Pointer$(~#dummy~0.base, ~#dummy~0.offset, ~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call write~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + 0, ~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem9.base, #t~mem9.offset := read~$Pointer$(#t~mem8.base, #t~mem8.offset + ~i~0 * 4, 4);call #t~mem10.base, #t~mem10.offset := read~$Pointer$(#t~mem9.base, #t~mem9.offset + 0, 4);~pa~0.base, ~pa~0.offset := #t~mem10.base, #t~mem10.offset + ~i~0 * 4;havoc #t~mem10.base, #t~mem10.offset;havoc #t~mem9.base, #t~mem9.offset;havoc #t~mem8.base, #t~mem8.offset;call #t~mem11 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {532#false} is VALID [2018-11-14 19:10:49,008 INFO L273 TraceCheckUtils]: 15: Hoare triple {532#false} assume #t~mem11 > 0;havoc #t~mem11;call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(#t~mem12.base, #t~mem12.offset + 0, 4);call #t~mem14 := read~int(#t~mem13.base, #t~mem13.offset + ~i~0 * 4, 4);~i~0 := #t~mem14 - 10;havoc #t~mem12.base, #t~mem12.offset;havoc #t~mem13.base, #t~mem13.offset;havoc #t~mem14; {532#false} is VALID [2018-11-14 19:10:49,008 INFO L273 TraceCheckUtils]: 16: Hoare triple {532#false} assume true; {532#false} is VALID [2018-11-14 19:10:49,008 INFO L273 TraceCheckUtils]: 17: Hoare triple {532#false} call #t~mem15 := read~int(~pa~0.base, ~pa~0.offset, 4); {532#false} is VALID [2018-11-14 19:10:49,009 INFO L273 TraceCheckUtils]: 18: Hoare triple {532#false} assume !(~i~0 < #t~mem15);havoc #t~mem15; {532#false} is VALID [2018-11-14 19:10:49,009 INFO L256 TraceCheckUtils]: 19: Hoare triple {532#false} call #t~ret17 := check(~#cont~0.base, ~#cont~0.offset, ~i~0); {531#true} is VALID [2018-11-14 19:10:49,009 INFO L273 TraceCheckUtils]: 20: Hoare triple {531#true} ~pc.base, ~pc.offset := #in~pc.base, #in~pc.offset;~i := #in~i;call #t~mem0.base, #t~mem0.offset := read~$Pointer$(~pc.base, ~pc.offset + 0, 4);call #t~mem1.base, #t~mem1.offset := read~$Pointer$(#t~mem0.base, #t~mem0.offset + ~i * 4, 4);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(#t~mem1.base, #t~mem1.offset + 0, 4);call #t~mem3 := read~int(#t~mem2.base, #t~mem2.offset + ~i * 4, 4);#res := (if #t~mem3 == ~i then 1 else 0);havoc #t~mem3;havoc #t~mem0.base, #t~mem0.offset;havoc #t~mem1.base, #t~mem1.offset;havoc #t~mem2.base, #t~mem2.offset; {531#true} is VALID [2018-11-14 19:10:49,009 INFO L273 TraceCheckUtils]: 21: Hoare triple {531#true} assume true; {531#true} is VALID [2018-11-14 19:10:49,010 INFO L268 TraceCheckUtils]: 22: Hoare quadruple {531#true} {532#false} #60#return; {532#false} is VALID [2018-11-14 19:10:49,010 INFO L273 TraceCheckUtils]: 23: Hoare triple {532#false} assume -2147483648 <= #t~ret17 && #t~ret17 <= 2147483647; {532#false} is VALID [2018-11-14 19:10:49,010 INFO L273 TraceCheckUtils]: 24: Hoare triple {532#false} assume #t~ret17 == 0;havoc #t~ret17; {532#false} is VALID [2018-11-14 19:10:49,011 INFO L273 TraceCheckUtils]: 25: Hoare triple {532#false} assume !false; {532#false} is VALID [2018-11-14 19:10:49,012 INFO L134 CoverageAnalysis]: Checked inductivity of 7 backedges. 0 proven. 7 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 19:10:49,012 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-14 19:10:49,012 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:10:49,022 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST1 [2018-11-14 19:10:49,078 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2018-11-14 19:10:49,078 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-14 19:10:49,100 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:49,101 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-14 19:10:49,211 INFO L256 TraceCheckUtils]: 0: Hoare triple {531#true} call ULTIMATE.init(); {531#true} is VALID [2018-11-14 19:10:49,211 INFO L273 TraceCheckUtils]: 1: Hoare triple {531#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {531#true} is VALID [2018-11-14 19:10:49,212 INFO L273 TraceCheckUtils]: 2: Hoare triple {531#true} assume true; {531#true} is VALID [2018-11-14 19:10:49,212 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {531#true} {531#true} #62#return; {531#true} is VALID [2018-11-14 19:10:49,213 INFO L256 TraceCheckUtils]: 4: Hoare triple {531#true} call #t~ret18 := main(); {531#true} is VALID [2018-11-14 19:10:49,214 INFO L273 TraceCheckUtils]: 5: Hoare triple {531#true} call ~#cont~0.base, ~#cont~0.offset := #Ultimate.alloc(4);call ~#dummy~0.base, ~#dummy~0.offset := #Ultimate.alloc(4);call ~#dummies~0.base, ~#dummies~0.offset := #Ultimate.alloc(40);call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(40);havoc ~i~0;havoc ~pa~0.base, ~pa~0.offset;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~i~0 := #t~nondet4;havoc #t~nondet4;~j~0 := 0; {554#(<= main_~j~0 0)} is VALID [2018-11-14 19:10:49,215 INFO L273 TraceCheckUtils]: 6: Hoare triple {554#(<= main_~j~0 0)} assume true; {554#(<= main_~j~0 0)} is VALID [2018-11-14 19:10:49,216 INFO L273 TraceCheckUtils]: 7: Hoare triple {554#(<= main_~j~0 0)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {554#(<= main_~j~0 0)} is VALID [2018-11-14 19:10:49,217 INFO L273 TraceCheckUtils]: 8: Hoare triple {554#(<= main_~j~0 0)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {534#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:49,217 INFO L273 TraceCheckUtils]: 9: Hoare triple {534#(<= main_~j~0 1)} assume true; {534#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:49,218 INFO L273 TraceCheckUtils]: 10: Hoare triple {534#(<= main_~j~0 1)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {534#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:49,219 INFO L273 TraceCheckUtils]: 11: Hoare triple {534#(<= main_~j~0 1)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {535#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:49,236 INFO L273 TraceCheckUtils]: 12: Hoare triple {535#(<= main_~j~0 2)} assume true; {535#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:49,237 INFO L273 TraceCheckUtils]: 13: Hoare triple {535#(<= main_~j~0 2)} assume !(~j~0 < 10); {532#false} is VALID [2018-11-14 19:10:49,237 INFO L273 TraceCheckUtils]: 14: Hoare triple {532#false} assume ~i~0 >= 0 && ~i~0 < 9;call write~int(~i~0, ~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4);call write~$Pointer$(~#a~0.base, ~#a~0.offset + ~i~0 * 4, ~#dummy~0.base, ~#dummy~0.offset + 0, 4);call write~$Pointer$(~#dummy~0.base, ~#dummy~0.offset, ~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call write~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + 0, ~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem9.base, #t~mem9.offset := read~$Pointer$(#t~mem8.base, #t~mem8.offset + ~i~0 * 4, 4);call #t~mem10.base, #t~mem10.offset := read~$Pointer$(#t~mem9.base, #t~mem9.offset + 0, 4);~pa~0.base, ~pa~0.offset := #t~mem10.base, #t~mem10.offset + ~i~0 * 4;havoc #t~mem10.base, #t~mem10.offset;havoc #t~mem9.base, #t~mem9.offset;havoc #t~mem8.base, #t~mem8.offset;call #t~mem11 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {532#false} is VALID [2018-11-14 19:10:49,238 INFO L273 TraceCheckUtils]: 15: Hoare triple {532#false} assume #t~mem11 > 0;havoc #t~mem11;call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(#t~mem12.base, #t~mem12.offset + 0, 4);call #t~mem14 := read~int(#t~mem13.base, #t~mem13.offset + ~i~0 * 4, 4);~i~0 := #t~mem14 - 10;havoc #t~mem12.base, #t~mem12.offset;havoc #t~mem13.base, #t~mem13.offset;havoc #t~mem14; {532#false} is VALID [2018-11-14 19:10:49,238 INFO L273 TraceCheckUtils]: 16: Hoare triple {532#false} assume true; {532#false} is VALID [2018-11-14 19:10:49,238 INFO L273 TraceCheckUtils]: 17: Hoare triple {532#false} call #t~mem15 := read~int(~pa~0.base, ~pa~0.offset, 4); {532#false} is VALID [2018-11-14 19:10:49,239 INFO L273 TraceCheckUtils]: 18: Hoare triple {532#false} assume !(~i~0 < #t~mem15);havoc #t~mem15; {532#false} is VALID [2018-11-14 19:10:49,239 INFO L256 TraceCheckUtils]: 19: Hoare triple {532#false} call #t~ret17 := check(~#cont~0.base, ~#cont~0.offset, ~i~0); {532#false} is VALID [2018-11-14 19:10:49,240 INFO L273 TraceCheckUtils]: 20: Hoare triple {532#false} ~pc.base, ~pc.offset := #in~pc.base, #in~pc.offset;~i := #in~i;call #t~mem0.base, #t~mem0.offset := read~$Pointer$(~pc.base, ~pc.offset + 0, 4);call #t~mem1.base, #t~mem1.offset := read~$Pointer$(#t~mem0.base, #t~mem0.offset + ~i * 4, 4);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(#t~mem1.base, #t~mem1.offset + 0, 4);call #t~mem3 := read~int(#t~mem2.base, #t~mem2.offset + ~i * 4, 4);#res := (if #t~mem3 == ~i then 1 else 0);havoc #t~mem3;havoc #t~mem0.base, #t~mem0.offset;havoc #t~mem1.base, #t~mem1.offset;havoc #t~mem2.base, #t~mem2.offset; {532#false} is VALID [2018-11-14 19:10:49,240 INFO L273 TraceCheckUtils]: 21: Hoare triple {532#false} assume true; {532#false} is VALID [2018-11-14 19:10:49,241 INFO L268 TraceCheckUtils]: 22: Hoare quadruple {532#false} {532#false} #60#return; {532#false} is VALID [2018-11-14 19:10:49,241 INFO L273 TraceCheckUtils]: 23: Hoare triple {532#false} assume -2147483648 <= #t~ret17 && #t~ret17 <= 2147483647; {532#false} is VALID [2018-11-14 19:10:49,241 INFO L273 TraceCheckUtils]: 24: Hoare triple {532#false} assume #t~ret17 == 0;havoc #t~ret17; {532#false} is VALID [2018-11-14 19:10:49,242 INFO L273 TraceCheckUtils]: 25: Hoare triple {532#false} assume !false; {532#false} is VALID [2018-11-14 19:10:49,243 INFO L134 CoverageAnalysis]: Checked inductivity of 7 backedges. 0 proven. 7 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 19:10:49,264 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-14 19:10:49,264 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5] total 6 [2018-11-14 19:10:49,265 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 26 [2018-11-14 19:10:49,265 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 19:10:49,266 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2018-11-14 19:10:49,379 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 34 edges. 34 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:10:49,380 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2018-11-14 19:10:49,380 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2018-11-14 19:10:49,380 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=15, Invalid=15, Unknown=0, NotChecked=0, Total=30 [2018-11-14 19:10:49,381 INFO L87 Difference]: Start difference. First operand 27 states and 28 transitions. Second operand 6 states. [2018-11-14 19:10:49,547 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:49,547 INFO L93 Difference]: Finished difference Result 44 states and 46 transitions. [2018-11-14 19:10:49,547 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2018-11-14 19:10:49,548 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 26 [2018-11-14 19:10:49,548 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 19:10:49,548 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2018-11-14 19:10:49,551 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 46 transitions. [2018-11-14 19:10:49,551 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2018-11-14 19:10:49,554 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 46 transitions. [2018-11-14 19:10:49,554 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 46 transitions. [2018-11-14 19:10:49,644 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 46 edges. 46 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:10:49,646 INFO L225 Difference]: With dead ends: 44 [2018-11-14 19:10:49,647 INFO L226 Difference]: Without dead ends: 31 [2018-11-14 19:10:49,648 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 30 GetRequests, 26 SyntacticMatches, 0 SemanticMatches, 4 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 2 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=15, Invalid=15, Unknown=0, NotChecked=0, Total=30 [2018-11-14 19:10:49,648 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 31 states. [2018-11-14 19:10:49,676 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 31 to 30. [2018-11-14 19:10:49,676 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 19:10:49,676 INFO L82 GeneralOperation]: Start isEquivalent. First operand 31 states. Second operand 30 states. [2018-11-14 19:10:49,676 INFO L74 IsIncluded]: Start isIncluded. First operand 31 states. Second operand 30 states. [2018-11-14 19:10:49,677 INFO L87 Difference]: Start difference. First operand 31 states. Second operand 30 states. [2018-11-14 19:10:49,678 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:49,679 INFO L93 Difference]: Finished difference Result 31 states and 32 transitions. [2018-11-14 19:10:49,679 INFO L276 IsEmpty]: Start isEmpty. Operand 31 states and 32 transitions. [2018-11-14 19:10:49,679 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:49,680 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:49,680 INFO L74 IsIncluded]: Start isIncluded. First operand 30 states. Second operand 31 states. [2018-11-14 19:10:49,680 INFO L87 Difference]: Start difference. First operand 30 states. Second operand 31 states. [2018-11-14 19:10:49,682 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:49,683 INFO L93 Difference]: Finished difference Result 31 states and 32 transitions. [2018-11-14 19:10:49,683 INFO L276 IsEmpty]: Start isEmpty. Operand 31 states and 32 transitions. [2018-11-14 19:10:49,683 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:49,683 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:49,684 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 19:10:49,684 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 19:10:49,684 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 30 states. [2018-11-14 19:10:49,685 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 30 states to 30 states and 31 transitions. [2018-11-14 19:10:49,686 INFO L78 Accepts]: Start accepts. Automaton has 30 states and 31 transitions. Word has length 26 [2018-11-14 19:10:49,686 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 19:10:49,686 INFO L480 AbstractCegarLoop]: Abstraction has 30 states and 31 transitions. [2018-11-14 19:10:49,686 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2018-11-14 19:10:49,686 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 31 transitions. [2018-11-14 19:10:49,687 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 30 [2018-11-14 19:10:49,687 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:10:49,688 INFO L375 BasicCegarLoop]: trace histogram [4, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 19:10:49,688 INFO L423 AbstractCegarLoop]: === Iteration 5 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:10:49,688 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:10:49,688 INFO L82 PathProgramCache]: Analyzing trace with hash 799655677, now seen corresponding path program 3 times [2018-11-14 19:10:49,689 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:10:49,689 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:10:49,690 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:49,690 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-14 19:10:49,690 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:49,719 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:49,828 INFO L256 TraceCheckUtils]: 0: Hoare triple {778#true} call ULTIMATE.init(); {778#true} is VALID [2018-11-14 19:10:49,828 INFO L273 TraceCheckUtils]: 1: Hoare triple {778#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {778#true} is VALID [2018-11-14 19:10:49,829 INFO L273 TraceCheckUtils]: 2: Hoare triple {778#true} assume true; {778#true} is VALID [2018-11-14 19:10:49,829 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {778#true} {778#true} #62#return; {778#true} is VALID [2018-11-14 19:10:49,830 INFO L256 TraceCheckUtils]: 4: Hoare triple {778#true} call #t~ret18 := main(); {778#true} is VALID [2018-11-14 19:10:49,830 INFO L273 TraceCheckUtils]: 5: Hoare triple {778#true} call ~#cont~0.base, ~#cont~0.offset := #Ultimate.alloc(4);call ~#dummy~0.base, ~#dummy~0.offset := #Ultimate.alloc(4);call ~#dummies~0.base, ~#dummies~0.offset := #Ultimate.alloc(40);call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(40);havoc ~i~0;havoc ~pa~0.base, ~pa~0.offset;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~i~0 := #t~nondet4;havoc #t~nondet4;~j~0 := 0; {780#(= main_~j~0 0)} is VALID [2018-11-14 19:10:49,835 INFO L273 TraceCheckUtils]: 6: Hoare triple {780#(= main_~j~0 0)} assume true; {780#(= main_~j~0 0)} is VALID [2018-11-14 19:10:49,835 INFO L273 TraceCheckUtils]: 7: Hoare triple {780#(= main_~j~0 0)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {780#(= main_~j~0 0)} is VALID [2018-11-14 19:10:49,837 INFO L273 TraceCheckUtils]: 8: Hoare triple {780#(= main_~j~0 0)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {781#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:49,837 INFO L273 TraceCheckUtils]: 9: Hoare triple {781#(<= main_~j~0 1)} assume true; {781#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:49,840 INFO L273 TraceCheckUtils]: 10: Hoare triple {781#(<= main_~j~0 1)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {781#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:49,841 INFO L273 TraceCheckUtils]: 11: Hoare triple {781#(<= main_~j~0 1)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {782#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:49,842 INFO L273 TraceCheckUtils]: 12: Hoare triple {782#(<= main_~j~0 2)} assume true; {782#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:49,843 INFO L273 TraceCheckUtils]: 13: Hoare triple {782#(<= main_~j~0 2)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {782#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:49,844 INFO L273 TraceCheckUtils]: 14: Hoare triple {782#(<= main_~j~0 2)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {783#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:49,845 INFO L273 TraceCheckUtils]: 15: Hoare triple {783#(<= main_~j~0 3)} assume true; {783#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:49,846 INFO L273 TraceCheckUtils]: 16: Hoare triple {783#(<= main_~j~0 3)} assume !(~j~0 < 10); {779#false} is VALID [2018-11-14 19:10:49,846 INFO L273 TraceCheckUtils]: 17: Hoare triple {779#false} assume ~i~0 >= 0 && ~i~0 < 9;call write~int(~i~0, ~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4);call write~$Pointer$(~#a~0.base, ~#a~0.offset + ~i~0 * 4, ~#dummy~0.base, ~#dummy~0.offset + 0, 4);call write~$Pointer$(~#dummy~0.base, ~#dummy~0.offset, ~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call write~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + 0, ~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem9.base, #t~mem9.offset := read~$Pointer$(#t~mem8.base, #t~mem8.offset + ~i~0 * 4, 4);call #t~mem10.base, #t~mem10.offset := read~$Pointer$(#t~mem9.base, #t~mem9.offset + 0, 4);~pa~0.base, ~pa~0.offset := #t~mem10.base, #t~mem10.offset + ~i~0 * 4;havoc #t~mem10.base, #t~mem10.offset;havoc #t~mem9.base, #t~mem9.offset;havoc #t~mem8.base, #t~mem8.offset;call #t~mem11 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {779#false} is VALID [2018-11-14 19:10:49,847 INFO L273 TraceCheckUtils]: 18: Hoare triple {779#false} assume #t~mem11 > 0;havoc #t~mem11;call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(#t~mem12.base, #t~mem12.offset + 0, 4);call #t~mem14 := read~int(#t~mem13.base, #t~mem13.offset + ~i~0 * 4, 4);~i~0 := #t~mem14 - 10;havoc #t~mem12.base, #t~mem12.offset;havoc #t~mem13.base, #t~mem13.offset;havoc #t~mem14; {779#false} is VALID [2018-11-14 19:10:49,847 INFO L273 TraceCheckUtils]: 19: Hoare triple {779#false} assume true; {779#false} is VALID [2018-11-14 19:10:49,847 INFO L273 TraceCheckUtils]: 20: Hoare triple {779#false} call #t~mem15 := read~int(~pa~0.base, ~pa~0.offset, 4); {779#false} is VALID [2018-11-14 19:10:49,848 INFO L273 TraceCheckUtils]: 21: Hoare triple {779#false} assume !(~i~0 < #t~mem15);havoc #t~mem15; {779#false} is VALID [2018-11-14 19:10:49,848 INFO L256 TraceCheckUtils]: 22: Hoare triple {779#false} call #t~ret17 := check(~#cont~0.base, ~#cont~0.offset, ~i~0); {778#true} is VALID [2018-11-14 19:10:49,848 INFO L273 TraceCheckUtils]: 23: Hoare triple {778#true} ~pc.base, ~pc.offset := #in~pc.base, #in~pc.offset;~i := #in~i;call #t~mem0.base, #t~mem0.offset := read~$Pointer$(~pc.base, ~pc.offset + 0, 4);call #t~mem1.base, #t~mem1.offset := read~$Pointer$(#t~mem0.base, #t~mem0.offset + ~i * 4, 4);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(#t~mem1.base, #t~mem1.offset + 0, 4);call #t~mem3 := read~int(#t~mem2.base, #t~mem2.offset + ~i * 4, 4);#res := (if #t~mem3 == ~i then 1 else 0);havoc #t~mem3;havoc #t~mem0.base, #t~mem0.offset;havoc #t~mem1.base, #t~mem1.offset;havoc #t~mem2.base, #t~mem2.offset; {778#true} is VALID [2018-11-14 19:10:49,849 INFO L273 TraceCheckUtils]: 24: Hoare triple {778#true} assume true; {778#true} is VALID [2018-11-14 19:10:49,849 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {778#true} {779#false} #60#return; {779#false} is VALID [2018-11-14 19:10:49,849 INFO L273 TraceCheckUtils]: 26: Hoare triple {779#false} assume -2147483648 <= #t~ret17 && #t~ret17 <= 2147483647; {779#false} is VALID [2018-11-14 19:10:49,849 INFO L273 TraceCheckUtils]: 27: Hoare triple {779#false} assume #t~ret17 == 0;havoc #t~ret17; {779#false} is VALID [2018-11-14 19:10:49,850 INFO L273 TraceCheckUtils]: 28: Hoare triple {779#false} assume !false; {779#false} is VALID [2018-11-14 19:10:49,851 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 0 proven. 15 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 19:10:49,852 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-14 19:10:49,852 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:10:49,868 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2018-11-14 19:10:49,927 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 4 check-sat command(s) [2018-11-14 19:10:49,928 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-14 19:10:49,954 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:49,955 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-14 19:10:50,184 INFO L256 TraceCheckUtils]: 0: Hoare triple {778#true} call ULTIMATE.init(); {778#true} is VALID [2018-11-14 19:10:50,185 INFO L273 TraceCheckUtils]: 1: Hoare triple {778#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {778#true} is VALID [2018-11-14 19:10:50,185 INFO L273 TraceCheckUtils]: 2: Hoare triple {778#true} assume true; {778#true} is VALID [2018-11-14 19:10:50,185 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {778#true} {778#true} #62#return; {778#true} is VALID [2018-11-14 19:10:50,186 INFO L256 TraceCheckUtils]: 4: Hoare triple {778#true} call #t~ret18 := main(); {778#true} is VALID [2018-11-14 19:10:50,188 INFO L273 TraceCheckUtils]: 5: Hoare triple {778#true} call ~#cont~0.base, ~#cont~0.offset := #Ultimate.alloc(4);call ~#dummy~0.base, ~#dummy~0.offset := #Ultimate.alloc(4);call ~#dummies~0.base, ~#dummies~0.offset := #Ultimate.alloc(40);call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(40);havoc ~i~0;havoc ~pa~0.base, ~pa~0.offset;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~i~0 := #t~nondet4;havoc #t~nondet4;~j~0 := 0; {802#(<= main_~j~0 0)} is VALID [2018-11-14 19:10:50,189 INFO L273 TraceCheckUtils]: 6: Hoare triple {802#(<= main_~j~0 0)} assume true; {802#(<= main_~j~0 0)} is VALID [2018-11-14 19:10:50,189 INFO L273 TraceCheckUtils]: 7: Hoare triple {802#(<= main_~j~0 0)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {802#(<= main_~j~0 0)} is VALID [2018-11-14 19:10:50,190 INFO L273 TraceCheckUtils]: 8: Hoare triple {802#(<= main_~j~0 0)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {781#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:50,191 INFO L273 TraceCheckUtils]: 9: Hoare triple {781#(<= main_~j~0 1)} assume true; {781#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:50,191 INFO L273 TraceCheckUtils]: 10: Hoare triple {781#(<= main_~j~0 1)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {781#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:50,192 INFO L273 TraceCheckUtils]: 11: Hoare triple {781#(<= main_~j~0 1)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {782#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:50,193 INFO L273 TraceCheckUtils]: 12: Hoare triple {782#(<= main_~j~0 2)} assume true; {782#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:50,194 INFO L273 TraceCheckUtils]: 13: Hoare triple {782#(<= main_~j~0 2)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {782#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:50,195 INFO L273 TraceCheckUtils]: 14: Hoare triple {782#(<= main_~j~0 2)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {783#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:50,196 INFO L273 TraceCheckUtils]: 15: Hoare triple {783#(<= main_~j~0 3)} assume true; {783#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:50,197 INFO L273 TraceCheckUtils]: 16: Hoare triple {783#(<= main_~j~0 3)} assume !(~j~0 < 10); {779#false} is VALID [2018-11-14 19:10:50,197 INFO L273 TraceCheckUtils]: 17: Hoare triple {779#false} assume ~i~0 >= 0 && ~i~0 < 9;call write~int(~i~0, ~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4);call write~$Pointer$(~#a~0.base, ~#a~0.offset + ~i~0 * 4, ~#dummy~0.base, ~#dummy~0.offset + 0, 4);call write~$Pointer$(~#dummy~0.base, ~#dummy~0.offset, ~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call write~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + 0, ~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem9.base, #t~mem9.offset := read~$Pointer$(#t~mem8.base, #t~mem8.offset + ~i~0 * 4, 4);call #t~mem10.base, #t~mem10.offset := read~$Pointer$(#t~mem9.base, #t~mem9.offset + 0, 4);~pa~0.base, ~pa~0.offset := #t~mem10.base, #t~mem10.offset + ~i~0 * 4;havoc #t~mem10.base, #t~mem10.offset;havoc #t~mem9.base, #t~mem9.offset;havoc #t~mem8.base, #t~mem8.offset;call #t~mem11 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {779#false} is VALID [2018-11-14 19:10:50,198 INFO L273 TraceCheckUtils]: 18: Hoare triple {779#false} assume #t~mem11 > 0;havoc #t~mem11;call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(#t~mem12.base, #t~mem12.offset + 0, 4);call #t~mem14 := read~int(#t~mem13.base, #t~mem13.offset + ~i~0 * 4, 4);~i~0 := #t~mem14 - 10;havoc #t~mem12.base, #t~mem12.offset;havoc #t~mem13.base, #t~mem13.offset;havoc #t~mem14; {779#false} is VALID [2018-11-14 19:10:50,198 INFO L273 TraceCheckUtils]: 19: Hoare triple {779#false} assume true; {779#false} is VALID [2018-11-14 19:10:50,198 INFO L273 TraceCheckUtils]: 20: Hoare triple {779#false} call #t~mem15 := read~int(~pa~0.base, ~pa~0.offset, 4); {779#false} is VALID [2018-11-14 19:10:50,199 INFO L273 TraceCheckUtils]: 21: Hoare triple {779#false} assume !(~i~0 < #t~mem15);havoc #t~mem15; {779#false} is VALID [2018-11-14 19:10:50,199 INFO L256 TraceCheckUtils]: 22: Hoare triple {779#false} call #t~ret17 := check(~#cont~0.base, ~#cont~0.offset, ~i~0); {779#false} is VALID [2018-11-14 19:10:50,199 INFO L273 TraceCheckUtils]: 23: Hoare triple {779#false} ~pc.base, ~pc.offset := #in~pc.base, #in~pc.offset;~i := #in~i;call #t~mem0.base, #t~mem0.offset := read~$Pointer$(~pc.base, ~pc.offset + 0, 4);call #t~mem1.base, #t~mem1.offset := read~$Pointer$(#t~mem0.base, #t~mem0.offset + ~i * 4, 4);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(#t~mem1.base, #t~mem1.offset + 0, 4);call #t~mem3 := read~int(#t~mem2.base, #t~mem2.offset + ~i * 4, 4);#res := (if #t~mem3 == ~i then 1 else 0);havoc #t~mem3;havoc #t~mem0.base, #t~mem0.offset;havoc #t~mem1.base, #t~mem1.offset;havoc #t~mem2.base, #t~mem2.offset; {779#false} is VALID [2018-11-14 19:10:50,200 INFO L273 TraceCheckUtils]: 24: Hoare triple {779#false} assume true; {779#false} is VALID [2018-11-14 19:10:50,200 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {779#false} {779#false} #60#return; {779#false} is VALID [2018-11-14 19:10:50,200 INFO L273 TraceCheckUtils]: 26: Hoare triple {779#false} assume -2147483648 <= #t~ret17 && #t~ret17 <= 2147483647; {779#false} is VALID [2018-11-14 19:10:50,200 INFO L273 TraceCheckUtils]: 27: Hoare triple {779#false} assume #t~ret17 == 0;havoc #t~ret17; {779#false} is VALID [2018-11-14 19:10:50,201 INFO L273 TraceCheckUtils]: 28: Hoare triple {779#false} assume !false; {779#false} is VALID [2018-11-14 19:10:50,202 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 0 proven. 15 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 19:10:50,224 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-14 19:10:50,224 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [6, 6] total 7 [2018-11-14 19:10:50,225 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 29 [2018-11-14 19:10:50,225 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 19:10:50,225 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states. [2018-11-14 19:10:50,277 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:10:50,277 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2018-11-14 19:10:50,277 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2018-11-14 19:10:50,277 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=21, Invalid=21, Unknown=0, NotChecked=0, Total=42 [2018-11-14 19:10:50,278 INFO L87 Difference]: Start difference. First operand 30 states and 31 transitions. Second operand 7 states. [2018-11-14 19:10:50,456 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:50,456 INFO L93 Difference]: Finished difference Result 47 states and 49 transitions. [2018-11-14 19:10:50,456 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2018-11-14 19:10:50,457 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 29 [2018-11-14 19:10:50,457 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 19:10:50,457 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2018-11-14 19:10:50,459 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 49 transitions. [2018-11-14 19:10:50,459 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2018-11-14 19:10:50,461 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 49 transitions. [2018-11-14 19:10:50,462 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 49 transitions. [2018-11-14 19:10:50,612 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 49 edges. 49 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:10:50,614 INFO L225 Difference]: With dead ends: 47 [2018-11-14 19:10:50,614 INFO L226 Difference]: Without dead ends: 34 [2018-11-14 19:10:50,615 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 34 GetRequests, 29 SyntacticMatches, 0 SemanticMatches, 5 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 4 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=21, Invalid=21, Unknown=0, NotChecked=0, Total=42 [2018-11-14 19:10:50,616 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 34 states. [2018-11-14 19:10:50,632 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 34 to 33. [2018-11-14 19:10:50,632 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 19:10:50,632 INFO L82 GeneralOperation]: Start isEquivalent. First operand 34 states. Second operand 33 states. [2018-11-14 19:10:50,633 INFO L74 IsIncluded]: Start isIncluded. First operand 34 states. Second operand 33 states. [2018-11-14 19:10:50,633 INFO L87 Difference]: Start difference. First operand 34 states. Second operand 33 states. [2018-11-14 19:10:50,635 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:50,636 INFO L93 Difference]: Finished difference Result 34 states and 35 transitions. [2018-11-14 19:10:50,636 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states and 35 transitions. [2018-11-14 19:10:50,637 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:50,637 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:50,637 INFO L74 IsIncluded]: Start isIncluded. First operand 33 states. Second operand 34 states. [2018-11-14 19:10:50,637 INFO L87 Difference]: Start difference. First operand 33 states. Second operand 34 states. [2018-11-14 19:10:50,639 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:50,639 INFO L93 Difference]: Finished difference Result 34 states and 35 transitions. [2018-11-14 19:10:50,639 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states and 35 transitions. [2018-11-14 19:10:50,640 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:50,640 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:50,640 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 19:10:50,640 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 19:10:50,641 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 33 states. [2018-11-14 19:10:50,644 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 33 states to 33 states and 34 transitions. [2018-11-14 19:10:50,644 INFO L78 Accepts]: Start accepts. Automaton has 33 states and 34 transitions. Word has length 29 [2018-11-14 19:10:50,644 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 19:10:50,644 INFO L480 AbstractCegarLoop]: Abstraction has 33 states and 34 transitions. [2018-11-14 19:10:50,645 INFO L481 AbstractCegarLoop]: Interpolant automaton has 7 states. [2018-11-14 19:10:50,645 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 34 transitions. [2018-11-14 19:10:50,646 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 33 [2018-11-14 19:10:50,646 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:10:50,646 INFO L375 BasicCegarLoop]: trace histogram [5, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 19:10:50,646 INFO L423 AbstractCegarLoop]: === Iteration 6 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:10:50,646 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:10:50,647 INFO L82 PathProgramCache]: Analyzing trace with hash -2056664549, now seen corresponding path program 4 times [2018-11-14 19:10:50,647 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:10:50,647 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:10:50,648 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:50,648 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-14 19:10:50,648 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:50,675 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:51,022 INFO L256 TraceCheckUtils]: 0: Hoare triple {1049#true} call ULTIMATE.init(); {1049#true} is VALID [2018-11-14 19:10:51,023 INFO L273 TraceCheckUtils]: 1: Hoare triple {1049#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {1049#true} is VALID [2018-11-14 19:10:51,023 INFO L273 TraceCheckUtils]: 2: Hoare triple {1049#true} assume true; {1049#true} is VALID [2018-11-14 19:10:51,023 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1049#true} {1049#true} #62#return; {1049#true} is VALID [2018-11-14 19:10:51,024 INFO L256 TraceCheckUtils]: 4: Hoare triple {1049#true} call #t~ret18 := main(); {1049#true} is VALID [2018-11-14 19:10:51,025 INFO L273 TraceCheckUtils]: 5: Hoare triple {1049#true} call ~#cont~0.base, ~#cont~0.offset := #Ultimate.alloc(4);call ~#dummy~0.base, ~#dummy~0.offset := #Ultimate.alloc(4);call ~#dummies~0.base, ~#dummies~0.offset := #Ultimate.alloc(40);call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(40);havoc ~i~0;havoc ~pa~0.base, ~pa~0.offset;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~i~0 := #t~nondet4;havoc #t~nondet4;~j~0 := 0; {1051#(= main_~j~0 0)} is VALID [2018-11-14 19:10:51,025 INFO L273 TraceCheckUtils]: 6: Hoare triple {1051#(= main_~j~0 0)} assume true; {1051#(= main_~j~0 0)} is VALID [2018-11-14 19:10:51,043 INFO L273 TraceCheckUtils]: 7: Hoare triple {1051#(= main_~j~0 0)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1051#(= main_~j~0 0)} is VALID [2018-11-14 19:10:51,057 INFO L273 TraceCheckUtils]: 8: Hoare triple {1051#(= main_~j~0 0)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1052#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:51,066 INFO L273 TraceCheckUtils]: 9: Hoare triple {1052#(<= main_~j~0 1)} assume true; {1052#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:51,071 INFO L273 TraceCheckUtils]: 10: Hoare triple {1052#(<= main_~j~0 1)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1052#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:51,072 INFO L273 TraceCheckUtils]: 11: Hoare triple {1052#(<= main_~j~0 1)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1053#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:51,076 INFO L273 TraceCheckUtils]: 12: Hoare triple {1053#(<= main_~j~0 2)} assume true; {1053#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:51,076 INFO L273 TraceCheckUtils]: 13: Hoare triple {1053#(<= main_~j~0 2)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1053#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:51,077 INFO L273 TraceCheckUtils]: 14: Hoare triple {1053#(<= main_~j~0 2)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1054#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:51,078 INFO L273 TraceCheckUtils]: 15: Hoare triple {1054#(<= main_~j~0 3)} assume true; {1054#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:51,079 INFO L273 TraceCheckUtils]: 16: Hoare triple {1054#(<= main_~j~0 3)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1054#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:51,080 INFO L273 TraceCheckUtils]: 17: Hoare triple {1054#(<= main_~j~0 3)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1055#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:51,080 INFO L273 TraceCheckUtils]: 18: Hoare triple {1055#(<= main_~j~0 4)} assume true; {1055#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:51,081 INFO L273 TraceCheckUtils]: 19: Hoare triple {1055#(<= main_~j~0 4)} assume !(~j~0 < 10); {1050#false} is VALID [2018-11-14 19:10:51,082 INFO L273 TraceCheckUtils]: 20: Hoare triple {1050#false} assume ~i~0 >= 0 && ~i~0 < 9;call write~int(~i~0, ~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4);call write~$Pointer$(~#a~0.base, ~#a~0.offset + ~i~0 * 4, ~#dummy~0.base, ~#dummy~0.offset + 0, 4);call write~$Pointer$(~#dummy~0.base, ~#dummy~0.offset, ~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call write~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + 0, ~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem9.base, #t~mem9.offset := read~$Pointer$(#t~mem8.base, #t~mem8.offset + ~i~0 * 4, 4);call #t~mem10.base, #t~mem10.offset := read~$Pointer$(#t~mem9.base, #t~mem9.offset + 0, 4);~pa~0.base, ~pa~0.offset := #t~mem10.base, #t~mem10.offset + ~i~0 * 4;havoc #t~mem10.base, #t~mem10.offset;havoc #t~mem9.base, #t~mem9.offset;havoc #t~mem8.base, #t~mem8.offset;call #t~mem11 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {1050#false} is VALID [2018-11-14 19:10:51,082 INFO L273 TraceCheckUtils]: 21: Hoare triple {1050#false} assume #t~mem11 > 0;havoc #t~mem11;call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(#t~mem12.base, #t~mem12.offset + 0, 4);call #t~mem14 := read~int(#t~mem13.base, #t~mem13.offset + ~i~0 * 4, 4);~i~0 := #t~mem14 - 10;havoc #t~mem12.base, #t~mem12.offset;havoc #t~mem13.base, #t~mem13.offset;havoc #t~mem14; {1050#false} is VALID [2018-11-14 19:10:51,082 INFO L273 TraceCheckUtils]: 22: Hoare triple {1050#false} assume true; {1050#false} is VALID [2018-11-14 19:10:51,083 INFO L273 TraceCheckUtils]: 23: Hoare triple {1050#false} call #t~mem15 := read~int(~pa~0.base, ~pa~0.offset, 4); {1050#false} is VALID [2018-11-14 19:10:51,083 INFO L273 TraceCheckUtils]: 24: Hoare triple {1050#false} assume !(~i~0 < #t~mem15);havoc #t~mem15; {1050#false} is VALID [2018-11-14 19:10:51,083 INFO L256 TraceCheckUtils]: 25: Hoare triple {1050#false} call #t~ret17 := check(~#cont~0.base, ~#cont~0.offset, ~i~0); {1049#true} is VALID [2018-11-14 19:10:51,084 INFO L273 TraceCheckUtils]: 26: Hoare triple {1049#true} ~pc.base, ~pc.offset := #in~pc.base, #in~pc.offset;~i := #in~i;call #t~mem0.base, #t~mem0.offset := read~$Pointer$(~pc.base, ~pc.offset + 0, 4);call #t~mem1.base, #t~mem1.offset := read~$Pointer$(#t~mem0.base, #t~mem0.offset + ~i * 4, 4);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(#t~mem1.base, #t~mem1.offset + 0, 4);call #t~mem3 := read~int(#t~mem2.base, #t~mem2.offset + ~i * 4, 4);#res := (if #t~mem3 == ~i then 1 else 0);havoc #t~mem3;havoc #t~mem0.base, #t~mem0.offset;havoc #t~mem1.base, #t~mem1.offset;havoc #t~mem2.base, #t~mem2.offset; {1049#true} is VALID [2018-11-14 19:10:51,084 INFO L273 TraceCheckUtils]: 27: Hoare triple {1049#true} assume true; {1049#true} is VALID [2018-11-14 19:10:51,085 INFO L268 TraceCheckUtils]: 28: Hoare quadruple {1049#true} {1050#false} #60#return; {1050#false} is VALID [2018-11-14 19:10:51,085 INFO L273 TraceCheckUtils]: 29: Hoare triple {1050#false} assume -2147483648 <= #t~ret17 && #t~ret17 <= 2147483647; {1050#false} is VALID [2018-11-14 19:10:51,085 INFO L273 TraceCheckUtils]: 30: Hoare triple {1050#false} assume #t~ret17 == 0;havoc #t~ret17; {1050#false} is VALID [2018-11-14 19:10:51,086 INFO L273 TraceCheckUtils]: 31: Hoare triple {1050#false} assume !false; {1050#false} is VALID [2018-11-14 19:10:51,087 INFO L134 CoverageAnalysis]: Checked inductivity of 26 backedges. 0 proven. 26 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 19:10:51,088 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-14 19:10:51,088 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:10:51,096 INFO L103 rtionOrderModulation]: Keeping assertion order TERMS_WITH_SMALL_CONSTANTS_FIRST [2018-11-14 19:10:51,154 INFO L249 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2018-11-14 19:10:51,154 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-14 19:10:51,189 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:51,191 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-14 19:10:51,706 INFO L256 TraceCheckUtils]: 0: Hoare triple {1049#true} call ULTIMATE.init(); {1049#true} is VALID [2018-11-14 19:10:51,707 INFO L273 TraceCheckUtils]: 1: Hoare triple {1049#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {1049#true} is VALID [2018-11-14 19:10:51,707 INFO L273 TraceCheckUtils]: 2: Hoare triple {1049#true} assume true; {1049#true} is VALID [2018-11-14 19:10:51,707 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1049#true} {1049#true} #62#return; {1049#true} is VALID [2018-11-14 19:10:51,708 INFO L256 TraceCheckUtils]: 4: Hoare triple {1049#true} call #t~ret18 := main(); {1049#true} is VALID [2018-11-14 19:10:51,710 INFO L273 TraceCheckUtils]: 5: Hoare triple {1049#true} call ~#cont~0.base, ~#cont~0.offset := #Ultimate.alloc(4);call ~#dummy~0.base, ~#dummy~0.offset := #Ultimate.alloc(4);call ~#dummies~0.base, ~#dummies~0.offset := #Ultimate.alloc(40);call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(40);havoc ~i~0;havoc ~pa~0.base, ~pa~0.offset;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~i~0 := #t~nondet4;havoc #t~nondet4;~j~0 := 0; {1074#(<= main_~j~0 0)} is VALID [2018-11-14 19:10:51,711 INFO L273 TraceCheckUtils]: 6: Hoare triple {1074#(<= main_~j~0 0)} assume true; {1074#(<= main_~j~0 0)} is VALID [2018-11-14 19:10:51,711 INFO L273 TraceCheckUtils]: 7: Hoare triple {1074#(<= main_~j~0 0)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1074#(<= main_~j~0 0)} is VALID [2018-11-14 19:10:51,712 INFO L273 TraceCheckUtils]: 8: Hoare triple {1074#(<= main_~j~0 0)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1052#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:51,713 INFO L273 TraceCheckUtils]: 9: Hoare triple {1052#(<= main_~j~0 1)} assume true; {1052#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:51,714 INFO L273 TraceCheckUtils]: 10: Hoare triple {1052#(<= main_~j~0 1)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1052#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:51,715 INFO L273 TraceCheckUtils]: 11: Hoare triple {1052#(<= main_~j~0 1)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1053#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:51,715 INFO L273 TraceCheckUtils]: 12: Hoare triple {1053#(<= main_~j~0 2)} assume true; {1053#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:51,716 INFO L273 TraceCheckUtils]: 13: Hoare triple {1053#(<= main_~j~0 2)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1053#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:51,717 INFO L273 TraceCheckUtils]: 14: Hoare triple {1053#(<= main_~j~0 2)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1054#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:51,718 INFO L273 TraceCheckUtils]: 15: Hoare triple {1054#(<= main_~j~0 3)} assume true; {1054#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:51,719 INFO L273 TraceCheckUtils]: 16: Hoare triple {1054#(<= main_~j~0 3)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1054#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:51,720 INFO L273 TraceCheckUtils]: 17: Hoare triple {1054#(<= main_~j~0 3)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1055#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:51,721 INFO L273 TraceCheckUtils]: 18: Hoare triple {1055#(<= main_~j~0 4)} assume true; {1055#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:51,722 INFO L273 TraceCheckUtils]: 19: Hoare triple {1055#(<= main_~j~0 4)} assume !(~j~0 < 10); {1050#false} is VALID [2018-11-14 19:10:51,722 INFO L273 TraceCheckUtils]: 20: Hoare triple {1050#false} assume ~i~0 >= 0 && ~i~0 < 9;call write~int(~i~0, ~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4);call write~$Pointer$(~#a~0.base, ~#a~0.offset + ~i~0 * 4, ~#dummy~0.base, ~#dummy~0.offset + 0, 4);call write~$Pointer$(~#dummy~0.base, ~#dummy~0.offset, ~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call write~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + 0, ~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem9.base, #t~mem9.offset := read~$Pointer$(#t~mem8.base, #t~mem8.offset + ~i~0 * 4, 4);call #t~mem10.base, #t~mem10.offset := read~$Pointer$(#t~mem9.base, #t~mem9.offset + 0, 4);~pa~0.base, ~pa~0.offset := #t~mem10.base, #t~mem10.offset + ~i~0 * 4;havoc #t~mem10.base, #t~mem10.offset;havoc #t~mem9.base, #t~mem9.offset;havoc #t~mem8.base, #t~mem8.offset;call #t~mem11 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {1050#false} is VALID [2018-11-14 19:10:51,722 INFO L273 TraceCheckUtils]: 21: Hoare triple {1050#false} assume #t~mem11 > 0;havoc #t~mem11;call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(#t~mem12.base, #t~mem12.offset + 0, 4);call #t~mem14 := read~int(#t~mem13.base, #t~mem13.offset + ~i~0 * 4, 4);~i~0 := #t~mem14 - 10;havoc #t~mem12.base, #t~mem12.offset;havoc #t~mem13.base, #t~mem13.offset;havoc #t~mem14; {1050#false} is VALID [2018-11-14 19:10:51,723 INFO L273 TraceCheckUtils]: 22: Hoare triple {1050#false} assume true; {1050#false} is VALID [2018-11-14 19:10:51,723 INFO L273 TraceCheckUtils]: 23: Hoare triple {1050#false} call #t~mem15 := read~int(~pa~0.base, ~pa~0.offset, 4); {1050#false} is VALID [2018-11-14 19:10:51,723 INFO L273 TraceCheckUtils]: 24: Hoare triple {1050#false} assume !(~i~0 < #t~mem15);havoc #t~mem15; {1050#false} is VALID [2018-11-14 19:10:51,724 INFO L256 TraceCheckUtils]: 25: Hoare triple {1050#false} call #t~ret17 := check(~#cont~0.base, ~#cont~0.offset, ~i~0); {1050#false} is VALID [2018-11-14 19:10:51,724 INFO L273 TraceCheckUtils]: 26: Hoare triple {1050#false} ~pc.base, ~pc.offset := #in~pc.base, #in~pc.offset;~i := #in~i;call #t~mem0.base, #t~mem0.offset := read~$Pointer$(~pc.base, ~pc.offset + 0, 4);call #t~mem1.base, #t~mem1.offset := read~$Pointer$(#t~mem0.base, #t~mem0.offset + ~i * 4, 4);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(#t~mem1.base, #t~mem1.offset + 0, 4);call #t~mem3 := read~int(#t~mem2.base, #t~mem2.offset + ~i * 4, 4);#res := (if #t~mem3 == ~i then 1 else 0);havoc #t~mem3;havoc #t~mem0.base, #t~mem0.offset;havoc #t~mem1.base, #t~mem1.offset;havoc #t~mem2.base, #t~mem2.offset; {1050#false} is VALID [2018-11-14 19:10:51,725 INFO L273 TraceCheckUtils]: 27: Hoare triple {1050#false} assume true; {1050#false} is VALID [2018-11-14 19:10:51,725 INFO L268 TraceCheckUtils]: 28: Hoare quadruple {1050#false} {1050#false} #60#return; {1050#false} is VALID [2018-11-14 19:10:51,726 INFO L273 TraceCheckUtils]: 29: Hoare triple {1050#false} assume -2147483648 <= #t~ret17 && #t~ret17 <= 2147483647; {1050#false} is VALID [2018-11-14 19:10:51,726 INFO L273 TraceCheckUtils]: 30: Hoare triple {1050#false} assume #t~ret17 == 0;havoc #t~ret17; {1050#false} is VALID [2018-11-14 19:10:51,726 INFO L273 TraceCheckUtils]: 31: Hoare triple {1050#false} assume !false; {1050#false} is VALID [2018-11-14 19:10:51,728 INFO L134 CoverageAnalysis]: Checked inductivity of 26 backedges. 0 proven. 26 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 19:10:51,758 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-14 19:10:51,759 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 7] total 8 [2018-11-14 19:10:51,759 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 32 [2018-11-14 19:10:51,760 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 19:10:51,760 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2018-11-14 19:10:51,855 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 40 edges. 40 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:10:51,856 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2018-11-14 19:10:51,856 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2018-11-14 19:10:51,856 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=28, Invalid=28, Unknown=0, NotChecked=0, Total=56 [2018-11-14 19:10:51,857 INFO L87 Difference]: Start difference. First operand 33 states and 34 transitions. Second operand 8 states. [2018-11-14 19:10:52,209 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:52,209 INFO L93 Difference]: Finished difference Result 50 states and 52 transitions. [2018-11-14 19:10:52,209 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2018-11-14 19:10:52,209 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 32 [2018-11-14 19:10:52,210 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 19:10:52,210 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2018-11-14 19:10:52,212 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 52 transitions. [2018-11-14 19:10:52,213 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2018-11-14 19:10:52,215 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 52 transitions. [2018-11-14 19:10:52,215 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 52 transitions. [2018-11-14 19:10:52,344 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:10:52,346 INFO L225 Difference]: With dead ends: 50 [2018-11-14 19:10:52,346 INFO L226 Difference]: Without dead ends: 37 [2018-11-14 19:10:52,347 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 38 GetRequests, 32 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 6 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=28, Invalid=28, Unknown=0, NotChecked=0, Total=56 [2018-11-14 19:10:52,347 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 37 states. [2018-11-14 19:10:52,433 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 37 to 36. [2018-11-14 19:10:52,434 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 19:10:52,434 INFO L82 GeneralOperation]: Start isEquivalent. First operand 37 states. Second operand 36 states. [2018-11-14 19:10:52,434 INFO L74 IsIncluded]: Start isIncluded. First operand 37 states. Second operand 36 states. [2018-11-14 19:10:52,435 INFO L87 Difference]: Start difference. First operand 37 states. Second operand 36 states. [2018-11-14 19:10:52,437 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:52,437 INFO L93 Difference]: Finished difference Result 37 states and 38 transitions. [2018-11-14 19:10:52,437 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 38 transitions. [2018-11-14 19:10:52,437 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:52,438 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:52,438 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 37 states. [2018-11-14 19:10:52,438 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 37 states. [2018-11-14 19:10:52,439 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:52,440 INFO L93 Difference]: Finished difference Result 37 states and 38 transitions. [2018-11-14 19:10:52,440 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 38 transitions. [2018-11-14 19:10:52,440 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:52,440 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:52,440 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 19:10:52,441 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 19:10:52,441 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 36 states. [2018-11-14 19:10:52,442 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 36 states to 36 states and 37 transitions. [2018-11-14 19:10:52,442 INFO L78 Accepts]: Start accepts. Automaton has 36 states and 37 transitions. Word has length 32 [2018-11-14 19:10:52,443 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 19:10:52,443 INFO L480 AbstractCegarLoop]: Abstraction has 36 states and 37 transitions. [2018-11-14 19:10:52,443 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2018-11-14 19:10:52,443 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 37 transitions. [2018-11-14 19:10:52,444 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 36 [2018-11-14 19:10:52,444 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:10:52,444 INFO L375 BasicCegarLoop]: trace histogram [6, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 19:10:52,444 INFO L423 AbstractCegarLoop]: === Iteration 7 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:10:52,445 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:10:52,445 INFO L82 PathProgramCache]: Analyzing trace with hash 1494518333, now seen corresponding path program 5 times [2018-11-14 19:10:52,445 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:10:52,445 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:10:52,446 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:52,446 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-14 19:10:52,446 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:52,486 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:52,708 INFO L256 TraceCheckUtils]: 0: Hoare triple {1344#true} call ULTIMATE.init(); {1344#true} is VALID [2018-11-14 19:10:52,709 INFO L273 TraceCheckUtils]: 1: Hoare triple {1344#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {1344#true} is VALID [2018-11-14 19:10:52,709 INFO L273 TraceCheckUtils]: 2: Hoare triple {1344#true} assume true; {1344#true} is VALID [2018-11-14 19:10:52,710 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1344#true} {1344#true} #62#return; {1344#true} is VALID [2018-11-14 19:10:52,710 INFO L256 TraceCheckUtils]: 4: Hoare triple {1344#true} call #t~ret18 := main(); {1344#true} is VALID [2018-11-14 19:10:52,711 INFO L273 TraceCheckUtils]: 5: Hoare triple {1344#true} call ~#cont~0.base, ~#cont~0.offset := #Ultimate.alloc(4);call ~#dummy~0.base, ~#dummy~0.offset := #Ultimate.alloc(4);call ~#dummies~0.base, ~#dummies~0.offset := #Ultimate.alloc(40);call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(40);havoc ~i~0;havoc ~pa~0.base, ~pa~0.offset;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~i~0 := #t~nondet4;havoc #t~nondet4;~j~0 := 0; {1346#(= main_~j~0 0)} is VALID [2018-11-14 19:10:52,711 INFO L273 TraceCheckUtils]: 6: Hoare triple {1346#(= main_~j~0 0)} assume true; {1346#(= main_~j~0 0)} is VALID [2018-11-14 19:10:52,712 INFO L273 TraceCheckUtils]: 7: Hoare triple {1346#(= main_~j~0 0)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1346#(= main_~j~0 0)} is VALID [2018-11-14 19:10:52,712 INFO L273 TraceCheckUtils]: 8: Hoare triple {1346#(= main_~j~0 0)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1347#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:52,712 INFO L273 TraceCheckUtils]: 9: Hoare triple {1347#(<= main_~j~0 1)} assume true; {1347#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:52,713 INFO L273 TraceCheckUtils]: 10: Hoare triple {1347#(<= main_~j~0 1)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1347#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:52,713 INFO L273 TraceCheckUtils]: 11: Hoare triple {1347#(<= main_~j~0 1)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1348#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:52,714 INFO L273 TraceCheckUtils]: 12: Hoare triple {1348#(<= main_~j~0 2)} assume true; {1348#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:52,715 INFO L273 TraceCheckUtils]: 13: Hoare triple {1348#(<= main_~j~0 2)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1348#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:52,715 INFO L273 TraceCheckUtils]: 14: Hoare triple {1348#(<= main_~j~0 2)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1349#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:52,716 INFO L273 TraceCheckUtils]: 15: Hoare triple {1349#(<= main_~j~0 3)} assume true; {1349#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:52,717 INFO L273 TraceCheckUtils]: 16: Hoare triple {1349#(<= main_~j~0 3)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1349#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:52,717 INFO L273 TraceCheckUtils]: 17: Hoare triple {1349#(<= main_~j~0 3)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1350#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:52,718 INFO L273 TraceCheckUtils]: 18: Hoare triple {1350#(<= main_~j~0 4)} assume true; {1350#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:52,719 INFO L273 TraceCheckUtils]: 19: Hoare triple {1350#(<= main_~j~0 4)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1350#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:52,719 INFO L273 TraceCheckUtils]: 20: Hoare triple {1350#(<= main_~j~0 4)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1351#(<= main_~j~0 5)} is VALID [2018-11-14 19:10:52,720 INFO L273 TraceCheckUtils]: 21: Hoare triple {1351#(<= main_~j~0 5)} assume true; {1351#(<= main_~j~0 5)} is VALID [2018-11-14 19:10:52,721 INFO L273 TraceCheckUtils]: 22: Hoare triple {1351#(<= main_~j~0 5)} assume !(~j~0 < 10); {1345#false} is VALID [2018-11-14 19:10:52,721 INFO L273 TraceCheckUtils]: 23: Hoare triple {1345#false} assume ~i~0 >= 0 && ~i~0 < 9;call write~int(~i~0, ~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4);call write~$Pointer$(~#a~0.base, ~#a~0.offset + ~i~0 * 4, ~#dummy~0.base, ~#dummy~0.offset + 0, 4);call write~$Pointer$(~#dummy~0.base, ~#dummy~0.offset, ~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call write~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + 0, ~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem9.base, #t~mem9.offset := read~$Pointer$(#t~mem8.base, #t~mem8.offset + ~i~0 * 4, 4);call #t~mem10.base, #t~mem10.offset := read~$Pointer$(#t~mem9.base, #t~mem9.offset + 0, 4);~pa~0.base, ~pa~0.offset := #t~mem10.base, #t~mem10.offset + ~i~0 * 4;havoc #t~mem10.base, #t~mem10.offset;havoc #t~mem9.base, #t~mem9.offset;havoc #t~mem8.base, #t~mem8.offset;call #t~mem11 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {1345#false} is VALID [2018-11-14 19:10:52,721 INFO L273 TraceCheckUtils]: 24: Hoare triple {1345#false} assume #t~mem11 > 0;havoc #t~mem11;call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(#t~mem12.base, #t~mem12.offset + 0, 4);call #t~mem14 := read~int(#t~mem13.base, #t~mem13.offset + ~i~0 * 4, 4);~i~0 := #t~mem14 - 10;havoc #t~mem12.base, #t~mem12.offset;havoc #t~mem13.base, #t~mem13.offset;havoc #t~mem14; {1345#false} is VALID [2018-11-14 19:10:52,722 INFO L273 TraceCheckUtils]: 25: Hoare triple {1345#false} assume true; {1345#false} is VALID [2018-11-14 19:10:52,722 INFO L273 TraceCheckUtils]: 26: Hoare triple {1345#false} call #t~mem15 := read~int(~pa~0.base, ~pa~0.offset, 4); {1345#false} is VALID [2018-11-14 19:10:52,722 INFO L273 TraceCheckUtils]: 27: Hoare triple {1345#false} assume !(~i~0 < #t~mem15);havoc #t~mem15; {1345#false} is VALID [2018-11-14 19:10:52,722 INFO L256 TraceCheckUtils]: 28: Hoare triple {1345#false} call #t~ret17 := check(~#cont~0.base, ~#cont~0.offset, ~i~0); {1344#true} is VALID [2018-11-14 19:10:52,723 INFO L273 TraceCheckUtils]: 29: Hoare triple {1344#true} ~pc.base, ~pc.offset := #in~pc.base, #in~pc.offset;~i := #in~i;call #t~mem0.base, #t~mem0.offset := read~$Pointer$(~pc.base, ~pc.offset + 0, 4);call #t~mem1.base, #t~mem1.offset := read~$Pointer$(#t~mem0.base, #t~mem0.offset + ~i * 4, 4);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(#t~mem1.base, #t~mem1.offset + 0, 4);call #t~mem3 := read~int(#t~mem2.base, #t~mem2.offset + ~i * 4, 4);#res := (if #t~mem3 == ~i then 1 else 0);havoc #t~mem3;havoc #t~mem0.base, #t~mem0.offset;havoc #t~mem1.base, #t~mem1.offset;havoc #t~mem2.base, #t~mem2.offset; {1344#true} is VALID [2018-11-14 19:10:52,723 INFO L273 TraceCheckUtils]: 30: Hoare triple {1344#true} assume true; {1344#true} is VALID [2018-11-14 19:10:52,723 INFO L268 TraceCheckUtils]: 31: Hoare quadruple {1344#true} {1345#false} #60#return; {1345#false} is VALID [2018-11-14 19:10:52,724 INFO L273 TraceCheckUtils]: 32: Hoare triple {1345#false} assume -2147483648 <= #t~ret17 && #t~ret17 <= 2147483647; {1345#false} is VALID [2018-11-14 19:10:52,724 INFO L273 TraceCheckUtils]: 33: Hoare triple {1345#false} assume #t~ret17 == 0;havoc #t~ret17; {1345#false} is VALID [2018-11-14 19:10:52,724 INFO L273 TraceCheckUtils]: 34: Hoare triple {1345#false} assume !false; {1345#false} is VALID [2018-11-14 19:10:52,725 INFO L134 CoverageAnalysis]: Checked inductivity of 40 backedges. 0 proven. 40 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 19:10:52,725 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-14 19:10:52,725 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:10:52,735 INFO L103 rtionOrderModulation]: Keeping assertion order INSIDE_LOOP_FIRST1 [2018-11-14 19:10:53,116 INFO L249 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 6 check-sat command(s) [2018-11-14 19:10:53,117 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-14 19:10:53,136 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:53,137 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-14 19:10:53,328 INFO L256 TraceCheckUtils]: 0: Hoare triple {1344#true} call ULTIMATE.init(); {1344#true} is VALID [2018-11-14 19:10:53,328 INFO L273 TraceCheckUtils]: 1: Hoare triple {1344#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {1344#true} is VALID [2018-11-14 19:10:53,329 INFO L273 TraceCheckUtils]: 2: Hoare triple {1344#true} assume true; {1344#true} is VALID [2018-11-14 19:10:53,329 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1344#true} {1344#true} #62#return; {1344#true} is VALID [2018-11-14 19:10:53,329 INFO L256 TraceCheckUtils]: 4: Hoare triple {1344#true} call #t~ret18 := main(); {1344#true} is VALID [2018-11-14 19:10:53,331 INFO L273 TraceCheckUtils]: 5: Hoare triple {1344#true} call ~#cont~0.base, ~#cont~0.offset := #Ultimate.alloc(4);call ~#dummy~0.base, ~#dummy~0.offset := #Ultimate.alloc(4);call ~#dummies~0.base, ~#dummies~0.offset := #Ultimate.alloc(40);call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(40);havoc ~i~0;havoc ~pa~0.base, ~pa~0.offset;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~i~0 := #t~nondet4;havoc #t~nondet4;~j~0 := 0; {1370#(<= main_~j~0 0)} is VALID [2018-11-14 19:10:53,331 INFO L273 TraceCheckUtils]: 6: Hoare triple {1370#(<= main_~j~0 0)} assume true; {1370#(<= main_~j~0 0)} is VALID [2018-11-14 19:10:53,334 INFO L273 TraceCheckUtils]: 7: Hoare triple {1370#(<= main_~j~0 0)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1370#(<= main_~j~0 0)} is VALID [2018-11-14 19:10:53,335 INFO L273 TraceCheckUtils]: 8: Hoare triple {1370#(<= main_~j~0 0)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1347#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:53,336 INFO L273 TraceCheckUtils]: 9: Hoare triple {1347#(<= main_~j~0 1)} assume true; {1347#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:53,336 INFO L273 TraceCheckUtils]: 10: Hoare triple {1347#(<= main_~j~0 1)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1347#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:53,338 INFO L273 TraceCheckUtils]: 11: Hoare triple {1347#(<= main_~j~0 1)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1348#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:53,340 INFO L273 TraceCheckUtils]: 12: Hoare triple {1348#(<= main_~j~0 2)} assume true; {1348#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:53,343 INFO L273 TraceCheckUtils]: 13: Hoare triple {1348#(<= main_~j~0 2)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1348#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:53,343 INFO L273 TraceCheckUtils]: 14: Hoare triple {1348#(<= main_~j~0 2)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1349#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:53,346 INFO L273 TraceCheckUtils]: 15: Hoare triple {1349#(<= main_~j~0 3)} assume true; {1349#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:53,346 INFO L273 TraceCheckUtils]: 16: Hoare triple {1349#(<= main_~j~0 3)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1349#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:53,349 INFO L273 TraceCheckUtils]: 17: Hoare triple {1349#(<= main_~j~0 3)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1350#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:53,351 INFO L273 TraceCheckUtils]: 18: Hoare triple {1350#(<= main_~j~0 4)} assume true; {1350#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:53,351 INFO L273 TraceCheckUtils]: 19: Hoare triple {1350#(<= main_~j~0 4)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1350#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:53,353 INFO L273 TraceCheckUtils]: 20: Hoare triple {1350#(<= main_~j~0 4)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1351#(<= main_~j~0 5)} is VALID [2018-11-14 19:10:53,353 INFO L273 TraceCheckUtils]: 21: Hoare triple {1351#(<= main_~j~0 5)} assume true; {1351#(<= main_~j~0 5)} is VALID [2018-11-14 19:10:53,355 INFO L273 TraceCheckUtils]: 22: Hoare triple {1351#(<= main_~j~0 5)} assume !(~j~0 < 10); {1345#false} is VALID [2018-11-14 19:10:53,356 INFO L273 TraceCheckUtils]: 23: Hoare triple {1345#false} assume ~i~0 >= 0 && ~i~0 < 9;call write~int(~i~0, ~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4);call write~$Pointer$(~#a~0.base, ~#a~0.offset + ~i~0 * 4, ~#dummy~0.base, ~#dummy~0.offset + 0, 4);call write~$Pointer$(~#dummy~0.base, ~#dummy~0.offset, ~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call write~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + 0, ~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem9.base, #t~mem9.offset := read~$Pointer$(#t~mem8.base, #t~mem8.offset + ~i~0 * 4, 4);call #t~mem10.base, #t~mem10.offset := read~$Pointer$(#t~mem9.base, #t~mem9.offset + 0, 4);~pa~0.base, ~pa~0.offset := #t~mem10.base, #t~mem10.offset + ~i~0 * 4;havoc #t~mem10.base, #t~mem10.offset;havoc #t~mem9.base, #t~mem9.offset;havoc #t~mem8.base, #t~mem8.offset;call #t~mem11 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {1345#false} is VALID [2018-11-14 19:10:53,356 INFO L273 TraceCheckUtils]: 24: Hoare triple {1345#false} assume #t~mem11 > 0;havoc #t~mem11;call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(#t~mem12.base, #t~mem12.offset + 0, 4);call #t~mem14 := read~int(#t~mem13.base, #t~mem13.offset + ~i~0 * 4, 4);~i~0 := #t~mem14 - 10;havoc #t~mem12.base, #t~mem12.offset;havoc #t~mem13.base, #t~mem13.offset;havoc #t~mem14; {1345#false} is VALID [2018-11-14 19:10:53,356 INFO L273 TraceCheckUtils]: 25: Hoare triple {1345#false} assume true; {1345#false} is VALID [2018-11-14 19:10:53,356 INFO L273 TraceCheckUtils]: 26: Hoare triple {1345#false} call #t~mem15 := read~int(~pa~0.base, ~pa~0.offset, 4); {1345#false} is VALID [2018-11-14 19:10:53,357 INFO L273 TraceCheckUtils]: 27: Hoare triple {1345#false} assume !(~i~0 < #t~mem15);havoc #t~mem15; {1345#false} is VALID [2018-11-14 19:10:53,357 INFO L256 TraceCheckUtils]: 28: Hoare triple {1345#false} call #t~ret17 := check(~#cont~0.base, ~#cont~0.offset, ~i~0); {1345#false} is VALID [2018-11-14 19:10:53,357 INFO L273 TraceCheckUtils]: 29: Hoare triple {1345#false} ~pc.base, ~pc.offset := #in~pc.base, #in~pc.offset;~i := #in~i;call #t~mem0.base, #t~mem0.offset := read~$Pointer$(~pc.base, ~pc.offset + 0, 4);call #t~mem1.base, #t~mem1.offset := read~$Pointer$(#t~mem0.base, #t~mem0.offset + ~i * 4, 4);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(#t~mem1.base, #t~mem1.offset + 0, 4);call #t~mem3 := read~int(#t~mem2.base, #t~mem2.offset + ~i * 4, 4);#res := (if #t~mem3 == ~i then 1 else 0);havoc #t~mem3;havoc #t~mem0.base, #t~mem0.offset;havoc #t~mem1.base, #t~mem1.offset;havoc #t~mem2.base, #t~mem2.offset; {1345#false} is VALID [2018-11-14 19:10:53,358 INFO L273 TraceCheckUtils]: 30: Hoare triple {1345#false} assume true; {1345#false} is VALID [2018-11-14 19:10:53,358 INFO L268 TraceCheckUtils]: 31: Hoare quadruple {1345#false} {1345#false} #60#return; {1345#false} is VALID [2018-11-14 19:10:53,359 INFO L273 TraceCheckUtils]: 32: Hoare triple {1345#false} assume -2147483648 <= #t~ret17 && #t~ret17 <= 2147483647; {1345#false} is VALID [2018-11-14 19:10:53,359 INFO L273 TraceCheckUtils]: 33: Hoare triple {1345#false} assume #t~ret17 == 0;havoc #t~ret17; {1345#false} is VALID [2018-11-14 19:10:53,359 INFO L273 TraceCheckUtils]: 34: Hoare triple {1345#false} assume !false; {1345#false} is VALID [2018-11-14 19:10:53,361 INFO L134 CoverageAnalysis]: Checked inductivity of 40 backedges. 0 proven. 40 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 19:10:53,383 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-14 19:10:53,383 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 8] total 9 [2018-11-14 19:10:53,384 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 35 [2018-11-14 19:10:53,384 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 19:10:53,384 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states. [2018-11-14 19:10:53,453 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 43 edges. 43 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:10:53,453 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2018-11-14 19:10:53,454 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2018-11-14 19:10:53,454 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=36, Invalid=36, Unknown=0, NotChecked=0, Total=72 [2018-11-14 19:10:53,454 INFO L87 Difference]: Start difference. First operand 36 states and 37 transitions. Second operand 9 states. [2018-11-14 19:10:53,840 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:53,840 INFO L93 Difference]: Finished difference Result 53 states and 55 transitions. [2018-11-14 19:10:53,841 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2018-11-14 19:10:53,841 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 35 [2018-11-14 19:10:53,841 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 19:10:53,841 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2018-11-14 19:10:53,843 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 55 transitions. [2018-11-14 19:10:53,844 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2018-11-14 19:10:53,845 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 55 transitions. [2018-11-14 19:10:53,846 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 55 transitions. [2018-11-14 19:10:53,915 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 55 edges. 55 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:10:53,917 INFO L225 Difference]: With dead ends: 53 [2018-11-14 19:10:53,917 INFO L226 Difference]: Without dead ends: 40 [2018-11-14 19:10:53,918 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 42 GetRequests, 35 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 8 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=36, Invalid=36, Unknown=0, NotChecked=0, Total=72 [2018-11-14 19:10:53,918 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 40 states. [2018-11-14 19:10:53,939 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 40 to 39. [2018-11-14 19:10:53,939 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 19:10:53,939 INFO L82 GeneralOperation]: Start isEquivalent. First operand 40 states. Second operand 39 states. [2018-11-14 19:10:53,939 INFO L74 IsIncluded]: Start isIncluded. First operand 40 states. Second operand 39 states. [2018-11-14 19:10:53,940 INFO L87 Difference]: Start difference. First operand 40 states. Second operand 39 states. [2018-11-14 19:10:53,941 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:53,941 INFO L93 Difference]: Finished difference Result 40 states and 41 transitions. [2018-11-14 19:10:53,941 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 41 transitions. [2018-11-14 19:10:53,942 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:53,942 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:53,942 INFO L74 IsIncluded]: Start isIncluded. First operand 39 states. Second operand 40 states. [2018-11-14 19:10:53,942 INFO L87 Difference]: Start difference. First operand 39 states. Second operand 40 states. [2018-11-14 19:10:53,944 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:53,944 INFO L93 Difference]: Finished difference Result 40 states and 41 transitions. [2018-11-14 19:10:53,944 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 41 transitions. [2018-11-14 19:10:53,945 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:53,945 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:53,945 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 19:10:53,945 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 19:10:53,945 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 39 states. [2018-11-14 19:10:53,947 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 39 states to 39 states and 40 transitions. [2018-11-14 19:10:53,947 INFO L78 Accepts]: Start accepts. Automaton has 39 states and 40 transitions. Word has length 35 [2018-11-14 19:10:53,947 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 19:10:53,948 INFO L480 AbstractCegarLoop]: Abstraction has 39 states and 40 transitions. [2018-11-14 19:10:53,948 INFO L481 AbstractCegarLoop]: Interpolant automaton has 9 states. [2018-11-14 19:10:53,948 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 40 transitions. [2018-11-14 19:10:53,949 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 39 [2018-11-14 19:10:53,949 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:10:53,949 INFO L375 BasicCegarLoop]: trace histogram [7, 6, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 19:10:53,949 INFO L423 AbstractCegarLoop]: === Iteration 8 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:10:53,949 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:10:53,950 INFO L82 PathProgramCache]: Analyzing trace with hash 1149320923, now seen corresponding path program 6 times [2018-11-14 19:10:53,950 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:10:53,950 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:10:53,951 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:53,951 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-14 19:10:53,951 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:53,972 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:54,115 INFO L256 TraceCheckUtils]: 0: Hoare triple {1663#true} call ULTIMATE.init(); {1663#true} is VALID [2018-11-14 19:10:54,116 INFO L273 TraceCheckUtils]: 1: Hoare triple {1663#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {1663#true} is VALID [2018-11-14 19:10:54,116 INFO L273 TraceCheckUtils]: 2: Hoare triple {1663#true} assume true; {1663#true} is VALID [2018-11-14 19:10:54,116 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1663#true} {1663#true} #62#return; {1663#true} is VALID [2018-11-14 19:10:54,117 INFO L256 TraceCheckUtils]: 4: Hoare triple {1663#true} call #t~ret18 := main(); {1663#true} is VALID [2018-11-14 19:10:54,117 INFO L273 TraceCheckUtils]: 5: Hoare triple {1663#true} call ~#cont~0.base, ~#cont~0.offset := #Ultimate.alloc(4);call ~#dummy~0.base, ~#dummy~0.offset := #Ultimate.alloc(4);call ~#dummies~0.base, ~#dummies~0.offset := #Ultimate.alloc(40);call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(40);havoc ~i~0;havoc ~pa~0.base, ~pa~0.offset;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~i~0 := #t~nondet4;havoc #t~nondet4;~j~0 := 0; {1665#(= main_~j~0 0)} is VALID [2018-11-14 19:10:54,118 INFO L273 TraceCheckUtils]: 6: Hoare triple {1665#(= main_~j~0 0)} assume true; {1665#(= main_~j~0 0)} is VALID [2018-11-14 19:10:54,119 INFO L273 TraceCheckUtils]: 7: Hoare triple {1665#(= main_~j~0 0)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1665#(= main_~j~0 0)} is VALID [2018-11-14 19:10:54,119 INFO L273 TraceCheckUtils]: 8: Hoare triple {1665#(= main_~j~0 0)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1666#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:54,120 INFO L273 TraceCheckUtils]: 9: Hoare triple {1666#(<= main_~j~0 1)} assume true; {1666#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:54,121 INFO L273 TraceCheckUtils]: 10: Hoare triple {1666#(<= main_~j~0 1)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1666#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:54,122 INFO L273 TraceCheckUtils]: 11: Hoare triple {1666#(<= main_~j~0 1)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1667#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:54,123 INFO L273 TraceCheckUtils]: 12: Hoare triple {1667#(<= main_~j~0 2)} assume true; {1667#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:54,123 INFO L273 TraceCheckUtils]: 13: Hoare triple {1667#(<= main_~j~0 2)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1667#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:54,124 INFO L273 TraceCheckUtils]: 14: Hoare triple {1667#(<= main_~j~0 2)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1668#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:54,125 INFO L273 TraceCheckUtils]: 15: Hoare triple {1668#(<= main_~j~0 3)} assume true; {1668#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:54,126 INFO L273 TraceCheckUtils]: 16: Hoare triple {1668#(<= main_~j~0 3)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1668#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:54,127 INFO L273 TraceCheckUtils]: 17: Hoare triple {1668#(<= main_~j~0 3)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1669#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:54,127 INFO L273 TraceCheckUtils]: 18: Hoare triple {1669#(<= main_~j~0 4)} assume true; {1669#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:54,128 INFO L273 TraceCheckUtils]: 19: Hoare triple {1669#(<= main_~j~0 4)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1669#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:54,129 INFO L273 TraceCheckUtils]: 20: Hoare triple {1669#(<= main_~j~0 4)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1670#(<= main_~j~0 5)} is VALID [2018-11-14 19:10:54,130 INFO L273 TraceCheckUtils]: 21: Hoare triple {1670#(<= main_~j~0 5)} assume true; {1670#(<= main_~j~0 5)} is VALID [2018-11-14 19:10:54,130 INFO L273 TraceCheckUtils]: 22: Hoare triple {1670#(<= main_~j~0 5)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1670#(<= main_~j~0 5)} is VALID [2018-11-14 19:10:54,131 INFO L273 TraceCheckUtils]: 23: Hoare triple {1670#(<= main_~j~0 5)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1671#(<= main_~j~0 6)} is VALID [2018-11-14 19:10:54,137 INFO L273 TraceCheckUtils]: 24: Hoare triple {1671#(<= main_~j~0 6)} assume true; {1671#(<= main_~j~0 6)} is VALID [2018-11-14 19:10:54,140 INFO L273 TraceCheckUtils]: 25: Hoare triple {1671#(<= main_~j~0 6)} assume !(~j~0 < 10); {1664#false} is VALID [2018-11-14 19:10:54,140 INFO L273 TraceCheckUtils]: 26: Hoare triple {1664#false} assume ~i~0 >= 0 && ~i~0 < 9;call write~int(~i~0, ~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4);call write~$Pointer$(~#a~0.base, ~#a~0.offset + ~i~0 * 4, ~#dummy~0.base, ~#dummy~0.offset + 0, 4);call write~$Pointer$(~#dummy~0.base, ~#dummy~0.offset, ~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call write~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + 0, ~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem9.base, #t~mem9.offset := read~$Pointer$(#t~mem8.base, #t~mem8.offset + ~i~0 * 4, 4);call #t~mem10.base, #t~mem10.offset := read~$Pointer$(#t~mem9.base, #t~mem9.offset + 0, 4);~pa~0.base, ~pa~0.offset := #t~mem10.base, #t~mem10.offset + ~i~0 * 4;havoc #t~mem10.base, #t~mem10.offset;havoc #t~mem9.base, #t~mem9.offset;havoc #t~mem8.base, #t~mem8.offset;call #t~mem11 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {1664#false} is VALID [2018-11-14 19:10:54,140 INFO L273 TraceCheckUtils]: 27: Hoare triple {1664#false} assume #t~mem11 > 0;havoc #t~mem11;call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(#t~mem12.base, #t~mem12.offset + 0, 4);call #t~mem14 := read~int(#t~mem13.base, #t~mem13.offset + ~i~0 * 4, 4);~i~0 := #t~mem14 - 10;havoc #t~mem12.base, #t~mem12.offset;havoc #t~mem13.base, #t~mem13.offset;havoc #t~mem14; {1664#false} is VALID [2018-11-14 19:10:54,140 INFO L273 TraceCheckUtils]: 28: Hoare triple {1664#false} assume true; {1664#false} is VALID [2018-11-14 19:10:54,140 INFO L273 TraceCheckUtils]: 29: Hoare triple {1664#false} call #t~mem15 := read~int(~pa~0.base, ~pa~0.offset, 4); {1664#false} is VALID [2018-11-14 19:10:54,141 INFO L273 TraceCheckUtils]: 30: Hoare triple {1664#false} assume !(~i~0 < #t~mem15);havoc #t~mem15; {1664#false} is VALID [2018-11-14 19:10:54,141 INFO L256 TraceCheckUtils]: 31: Hoare triple {1664#false} call #t~ret17 := check(~#cont~0.base, ~#cont~0.offset, ~i~0); {1663#true} is VALID [2018-11-14 19:10:54,141 INFO L273 TraceCheckUtils]: 32: Hoare triple {1663#true} ~pc.base, ~pc.offset := #in~pc.base, #in~pc.offset;~i := #in~i;call #t~mem0.base, #t~mem0.offset := read~$Pointer$(~pc.base, ~pc.offset + 0, 4);call #t~mem1.base, #t~mem1.offset := read~$Pointer$(#t~mem0.base, #t~mem0.offset + ~i * 4, 4);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(#t~mem1.base, #t~mem1.offset + 0, 4);call #t~mem3 := read~int(#t~mem2.base, #t~mem2.offset + ~i * 4, 4);#res := (if #t~mem3 == ~i then 1 else 0);havoc #t~mem3;havoc #t~mem0.base, #t~mem0.offset;havoc #t~mem1.base, #t~mem1.offset;havoc #t~mem2.base, #t~mem2.offset; {1663#true} is VALID [2018-11-14 19:10:54,141 INFO L273 TraceCheckUtils]: 33: Hoare triple {1663#true} assume true; {1663#true} is VALID [2018-11-14 19:10:54,141 INFO L268 TraceCheckUtils]: 34: Hoare quadruple {1663#true} {1664#false} #60#return; {1664#false} is VALID [2018-11-14 19:10:54,142 INFO L273 TraceCheckUtils]: 35: Hoare triple {1664#false} assume -2147483648 <= #t~ret17 && #t~ret17 <= 2147483647; {1664#false} is VALID [2018-11-14 19:10:54,142 INFO L273 TraceCheckUtils]: 36: Hoare triple {1664#false} assume #t~ret17 == 0;havoc #t~ret17; {1664#false} is VALID [2018-11-14 19:10:54,142 INFO L273 TraceCheckUtils]: 37: Hoare triple {1664#false} assume !false; {1664#false} is VALID [2018-11-14 19:10:54,144 INFO L134 CoverageAnalysis]: Checked inductivity of 57 backedges. 0 proven. 57 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 19:10:54,144 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-14 19:10:54,144 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-14 19:10:54,153 INFO L103 rtionOrderModulation]: Keeping assertion order MIX_INSIDE_OUTSIDE [2018-11-14 19:10:55,375 INFO L249 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 7 check-sat command(s) [2018-11-14 19:10:55,376 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-14 19:10:55,395 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:55,397 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-14 19:10:55,800 INFO L256 TraceCheckUtils]: 0: Hoare triple {1663#true} call ULTIMATE.init(); {1663#true} is VALID [2018-11-14 19:10:55,800 INFO L273 TraceCheckUtils]: 1: Hoare triple {1663#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {1663#true} is VALID [2018-11-14 19:10:55,800 INFO L273 TraceCheckUtils]: 2: Hoare triple {1663#true} assume true; {1663#true} is VALID [2018-11-14 19:10:55,801 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1663#true} {1663#true} #62#return; {1663#true} is VALID [2018-11-14 19:10:55,801 INFO L256 TraceCheckUtils]: 4: Hoare triple {1663#true} call #t~ret18 := main(); {1663#true} is VALID [2018-11-14 19:10:55,802 INFO L273 TraceCheckUtils]: 5: Hoare triple {1663#true} call ~#cont~0.base, ~#cont~0.offset := #Ultimate.alloc(4);call ~#dummy~0.base, ~#dummy~0.offset := #Ultimate.alloc(4);call ~#dummies~0.base, ~#dummies~0.offset := #Ultimate.alloc(40);call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(40);havoc ~i~0;havoc ~pa~0.base, ~pa~0.offset;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~i~0 := #t~nondet4;havoc #t~nondet4;~j~0 := 0; {1690#(<= main_~j~0 0)} is VALID [2018-11-14 19:10:55,803 INFO L273 TraceCheckUtils]: 6: Hoare triple {1690#(<= main_~j~0 0)} assume true; {1690#(<= main_~j~0 0)} is VALID [2018-11-14 19:10:55,803 INFO L273 TraceCheckUtils]: 7: Hoare triple {1690#(<= main_~j~0 0)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1690#(<= main_~j~0 0)} is VALID [2018-11-14 19:10:55,804 INFO L273 TraceCheckUtils]: 8: Hoare triple {1690#(<= main_~j~0 0)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1666#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:55,804 INFO L273 TraceCheckUtils]: 9: Hoare triple {1666#(<= main_~j~0 1)} assume true; {1666#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:55,805 INFO L273 TraceCheckUtils]: 10: Hoare triple {1666#(<= main_~j~0 1)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1666#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:55,806 INFO L273 TraceCheckUtils]: 11: Hoare triple {1666#(<= main_~j~0 1)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1667#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:55,810 INFO L273 TraceCheckUtils]: 12: Hoare triple {1667#(<= main_~j~0 2)} assume true; {1667#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:55,810 INFO L273 TraceCheckUtils]: 13: Hoare triple {1667#(<= main_~j~0 2)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1667#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:55,811 INFO L273 TraceCheckUtils]: 14: Hoare triple {1667#(<= main_~j~0 2)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1668#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:55,811 INFO L273 TraceCheckUtils]: 15: Hoare triple {1668#(<= main_~j~0 3)} assume true; {1668#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:55,811 INFO L273 TraceCheckUtils]: 16: Hoare triple {1668#(<= main_~j~0 3)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1668#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:55,812 INFO L273 TraceCheckUtils]: 17: Hoare triple {1668#(<= main_~j~0 3)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1669#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:55,816 INFO L273 TraceCheckUtils]: 18: Hoare triple {1669#(<= main_~j~0 4)} assume true; {1669#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:55,819 INFO L273 TraceCheckUtils]: 19: Hoare triple {1669#(<= main_~j~0 4)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1669#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:55,822 INFO L273 TraceCheckUtils]: 20: Hoare triple {1669#(<= main_~j~0 4)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1670#(<= main_~j~0 5)} is VALID [2018-11-14 19:10:55,822 INFO L273 TraceCheckUtils]: 21: Hoare triple {1670#(<= main_~j~0 5)} assume true; {1670#(<= main_~j~0 5)} is VALID [2018-11-14 19:10:55,822 INFO L273 TraceCheckUtils]: 22: Hoare triple {1670#(<= main_~j~0 5)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {1670#(<= main_~j~0 5)} is VALID [2018-11-14 19:10:55,823 INFO L273 TraceCheckUtils]: 23: Hoare triple {1670#(<= main_~j~0 5)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {1671#(<= main_~j~0 6)} is VALID [2018-11-14 19:10:55,823 INFO L273 TraceCheckUtils]: 24: Hoare triple {1671#(<= main_~j~0 6)} assume true; {1671#(<= main_~j~0 6)} is VALID [2018-11-14 19:10:55,824 INFO L273 TraceCheckUtils]: 25: Hoare triple {1671#(<= main_~j~0 6)} assume !(~j~0 < 10); {1664#false} is VALID [2018-11-14 19:10:55,824 INFO L273 TraceCheckUtils]: 26: Hoare triple {1664#false} assume ~i~0 >= 0 && ~i~0 < 9;call write~int(~i~0, ~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4);call write~$Pointer$(~#a~0.base, ~#a~0.offset + ~i~0 * 4, ~#dummy~0.base, ~#dummy~0.offset + 0, 4);call write~$Pointer$(~#dummy~0.base, ~#dummy~0.offset, ~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call write~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + 0, ~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem9.base, #t~mem9.offset := read~$Pointer$(#t~mem8.base, #t~mem8.offset + ~i~0 * 4, 4);call #t~mem10.base, #t~mem10.offset := read~$Pointer$(#t~mem9.base, #t~mem9.offset + 0, 4);~pa~0.base, ~pa~0.offset := #t~mem10.base, #t~mem10.offset + ~i~0 * 4;havoc #t~mem10.base, #t~mem10.offset;havoc #t~mem9.base, #t~mem9.offset;havoc #t~mem8.base, #t~mem8.offset;call #t~mem11 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {1664#false} is VALID [2018-11-14 19:10:55,824 INFO L273 TraceCheckUtils]: 27: Hoare triple {1664#false} assume #t~mem11 > 0;havoc #t~mem11;call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(#t~mem12.base, #t~mem12.offset + 0, 4);call #t~mem14 := read~int(#t~mem13.base, #t~mem13.offset + ~i~0 * 4, 4);~i~0 := #t~mem14 - 10;havoc #t~mem12.base, #t~mem12.offset;havoc #t~mem13.base, #t~mem13.offset;havoc #t~mem14; {1664#false} is VALID [2018-11-14 19:10:55,824 INFO L273 TraceCheckUtils]: 28: Hoare triple {1664#false} assume true; {1664#false} is VALID [2018-11-14 19:10:55,824 INFO L273 TraceCheckUtils]: 29: Hoare triple {1664#false} call #t~mem15 := read~int(~pa~0.base, ~pa~0.offset, 4); {1664#false} is VALID [2018-11-14 19:10:55,824 INFO L273 TraceCheckUtils]: 30: Hoare triple {1664#false} assume !(~i~0 < #t~mem15);havoc #t~mem15; {1664#false} is VALID [2018-11-14 19:10:55,824 INFO L256 TraceCheckUtils]: 31: Hoare triple {1664#false} call #t~ret17 := check(~#cont~0.base, ~#cont~0.offset, ~i~0); {1664#false} is VALID [2018-11-14 19:10:55,825 INFO L273 TraceCheckUtils]: 32: Hoare triple {1664#false} ~pc.base, ~pc.offset := #in~pc.base, #in~pc.offset;~i := #in~i;call #t~mem0.base, #t~mem0.offset := read~$Pointer$(~pc.base, ~pc.offset + 0, 4);call #t~mem1.base, #t~mem1.offset := read~$Pointer$(#t~mem0.base, #t~mem0.offset + ~i * 4, 4);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(#t~mem1.base, #t~mem1.offset + 0, 4);call #t~mem3 := read~int(#t~mem2.base, #t~mem2.offset + ~i * 4, 4);#res := (if #t~mem3 == ~i then 1 else 0);havoc #t~mem3;havoc #t~mem0.base, #t~mem0.offset;havoc #t~mem1.base, #t~mem1.offset;havoc #t~mem2.base, #t~mem2.offset; {1664#false} is VALID [2018-11-14 19:10:55,825 INFO L273 TraceCheckUtils]: 33: Hoare triple {1664#false} assume true; {1664#false} is VALID [2018-11-14 19:10:55,825 INFO L268 TraceCheckUtils]: 34: Hoare quadruple {1664#false} {1664#false} #60#return; {1664#false} is VALID [2018-11-14 19:10:55,825 INFO L273 TraceCheckUtils]: 35: Hoare triple {1664#false} assume -2147483648 <= #t~ret17 && #t~ret17 <= 2147483647; {1664#false} is VALID [2018-11-14 19:10:55,825 INFO L273 TraceCheckUtils]: 36: Hoare triple {1664#false} assume #t~ret17 == 0;havoc #t~ret17; {1664#false} is VALID [2018-11-14 19:10:55,825 INFO L273 TraceCheckUtils]: 37: Hoare triple {1664#false} assume !false; {1664#false} is VALID [2018-11-14 19:10:55,826 INFO L134 CoverageAnalysis]: Checked inductivity of 57 backedges. 0 proven. 57 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 19:10:55,848 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-14 19:10:55,849 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 9] total 10 [2018-11-14 19:10:55,849 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 38 [2018-11-14 19:10:55,849 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 19:10:55,849 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2018-11-14 19:10:55,974 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 46 edges. 46 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:10:55,975 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2018-11-14 19:10:55,975 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2018-11-14 19:10:55,975 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=45, Unknown=0, NotChecked=0, Total=90 [2018-11-14 19:10:55,975 INFO L87 Difference]: Start difference. First operand 39 states and 40 transitions. Second operand 10 states. [2018-11-14 19:10:56,349 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:56,350 INFO L93 Difference]: Finished difference Result 56 states and 58 transitions. [2018-11-14 19:10:56,350 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2018-11-14 19:10:56,350 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 38 [2018-11-14 19:10:56,350 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 19:10:56,350 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2018-11-14 19:10:56,352 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 58 transitions. [2018-11-14 19:10:56,352 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2018-11-14 19:10:56,354 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 58 transitions. [2018-11-14 19:10:56,354 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 58 transitions. [2018-11-14 19:10:56,459 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 58 edges. 58 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:10:56,461 INFO L225 Difference]: With dead ends: 56 [2018-11-14 19:10:56,461 INFO L226 Difference]: Without dead ends: 43 [2018-11-14 19:10:56,462 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 46 GetRequests, 38 SyntacticMatches, 0 SemanticMatches, 8 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 10 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=45, Invalid=45, Unknown=0, NotChecked=0, Total=90 [2018-11-14 19:10:56,462 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 43 states. [2018-11-14 19:10:56,495 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 43 to 42. [2018-11-14 19:10:56,495 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 19:10:56,495 INFO L82 GeneralOperation]: Start isEquivalent. First operand 43 states. Second operand 42 states. [2018-11-14 19:10:56,495 INFO L74 IsIncluded]: Start isIncluded. First operand 43 states. Second operand 42 states. [2018-11-14 19:10:56,495 INFO L87 Difference]: Start difference. First operand 43 states. Second operand 42 states. [2018-11-14 19:10:56,497 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:56,497 INFO L93 Difference]: Finished difference Result 43 states and 44 transitions. [2018-11-14 19:10:56,497 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 44 transitions. [2018-11-14 19:10:56,498 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:56,498 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:56,498 INFO L74 IsIncluded]: Start isIncluded. First operand 42 states. Second operand 43 states. [2018-11-14 19:10:56,498 INFO L87 Difference]: Start difference. First operand 42 states. Second operand 43 states. [2018-11-14 19:10:56,500 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:56,500 INFO L93 Difference]: Finished difference Result 43 states and 44 transitions. [2018-11-14 19:10:56,500 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 44 transitions. [2018-11-14 19:10:56,500 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:56,500 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:56,501 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 19:10:56,501 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 19:10:56,501 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 42 states. [2018-11-14 19:10:56,502 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 42 states to 42 states and 43 transitions. [2018-11-14 19:10:56,502 INFO L78 Accepts]: Start accepts. Automaton has 42 states and 43 transitions. Word has length 38 [2018-11-14 19:10:56,503 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 19:10:56,503 INFO L480 AbstractCegarLoop]: Abstraction has 42 states and 43 transitions. [2018-11-14 19:10:56,503 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2018-11-14 19:10:56,503 INFO L276 IsEmpty]: Start isEmpty. Operand 42 states and 43 transitions. [2018-11-14 19:10:56,504 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 42 [2018-11-14 19:10:56,504 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:10:56,504 INFO L375 BasicCegarLoop]: trace histogram [8, 7, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 19:10:56,504 INFO L423 AbstractCegarLoop]: === Iteration 9 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:10:56,504 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:10:56,504 INFO L82 PathProgramCache]: Analyzing trace with hash -475013763, now seen corresponding path program 7 times [2018-11-14 19:10:56,505 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:10:56,505 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:10:56,506 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:56,506 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-14 19:10:56,506 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:56,530 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:56,732 INFO L256 TraceCheckUtils]: 0: Hoare triple {2006#true} call ULTIMATE.init(); {2006#true} is VALID [2018-11-14 19:10:56,732 INFO L273 TraceCheckUtils]: 1: Hoare triple {2006#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {2006#true} is VALID [2018-11-14 19:10:56,733 INFO L273 TraceCheckUtils]: 2: Hoare triple {2006#true} assume true; {2006#true} is VALID [2018-11-14 19:10:56,733 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {2006#true} {2006#true} #62#return; {2006#true} is VALID [2018-11-14 19:10:56,733 INFO L256 TraceCheckUtils]: 4: Hoare triple {2006#true} call #t~ret18 := main(); {2006#true} is VALID [2018-11-14 19:10:56,733 INFO L273 TraceCheckUtils]: 5: Hoare triple {2006#true} call ~#cont~0.base, ~#cont~0.offset := #Ultimate.alloc(4);call ~#dummy~0.base, ~#dummy~0.offset := #Ultimate.alloc(4);call ~#dummies~0.base, ~#dummies~0.offset := #Ultimate.alloc(40);call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(40);havoc ~i~0;havoc ~pa~0.base, ~pa~0.offset;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~i~0 := #t~nondet4;havoc #t~nondet4;~j~0 := 0; {2008#(= main_~j~0 0)} is VALID [2018-11-14 19:10:56,734 INFO L273 TraceCheckUtils]: 6: Hoare triple {2008#(= main_~j~0 0)} assume true; {2008#(= main_~j~0 0)} is VALID [2018-11-14 19:10:56,734 INFO L273 TraceCheckUtils]: 7: Hoare triple {2008#(= main_~j~0 0)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2008#(= main_~j~0 0)} is VALID [2018-11-14 19:10:56,734 INFO L273 TraceCheckUtils]: 8: Hoare triple {2008#(= main_~j~0 0)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2009#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:56,735 INFO L273 TraceCheckUtils]: 9: Hoare triple {2009#(<= main_~j~0 1)} assume true; {2009#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:56,735 INFO L273 TraceCheckUtils]: 10: Hoare triple {2009#(<= main_~j~0 1)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2009#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:56,736 INFO L273 TraceCheckUtils]: 11: Hoare triple {2009#(<= main_~j~0 1)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2010#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:56,736 INFO L273 TraceCheckUtils]: 12: Hoare triple {2010#(<= main_~j~0 2)} assume true; {2010#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:56,736 INFO L273 TraceCheckUtils]: 13: Hoare triple {2010#(<= main_~j~0 2)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2010#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:56,737 INFO L273 TraceCheckUtils]: 14: Hoare triple {2010#(<= main_~j~0 2)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2011#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:56,737 INFO L273 TraceCheckUtils]: 15: Hoare triple {2011#(<= main_~j~0 3)} assume true; {2011#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:56,738 INFO L273 TraceCheckUtils]: 16: Hoare triple {2011#(<= main_~j~0 3)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2011#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:56,739 INFO L273 TraceCheckUtils]: 17: Hoare triple {2011#(<= main_~j~0 3)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2012#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:56,739 INFO L273 TraceCheckUtils]: 18: Hoare triple {2012#(<= main_~j~0 4)} assume true; {2012#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:56,740 INFO L273 TraceCheckUtils]: 19: Hoare triple {2012#(<= main_~j~0 4)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2012#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:56,741 INFO L273 TraceCheckUtils]: 20: Hoare triple {2012#(<= main_~j~0 4)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2013#(<= main_~j~0 5)} is VALID [2018-11-14 19:10:56,741 INFO L273 TraceCheckUtils]: 21: Hoare triple {2013#(<= main_~j~0 5)} assume true; {2013#(<= main_~j~0 5)} is VALID [2018-11-14 19:10:56,742 INFO L273 TraceCheckUtils]: 22: Hoare triple {2013#(<= main_~j~0 5)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2013#(<= main_~j~0 5)} is VALID [2018-11-14 19:10:56,743 INFO L273 TraceCheckUtils]: 23: Hoare triple {2013#(<= main_~j~0 5)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2014#(<= main_~j~0 6)} is VALID [2018-11-14 19:10:56,743 INFO L273 TraceCheckUtils]: 24: Hoare triple {2014#(<= main_~j~0 6)} assume true; {2014#(<= main_~j~0 6)} is VALID [2018-11-14 19:10:56,744 INFO L273 TraceCheckUtils]: 25: Hoare triple {2014#(<= main_~j~0 6)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2014#(<= main_~j~0 6)} is VALID [2018-11-14 19:10:56,745 INFO L273 TraceCheckUtils]: 26: Hoare triple {2014#(<= main_~j~0 6)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2015#(<= main_~j~0 7)} is VALID [2018-11-14 19:10:56,745 INFO L273 TraceCheckUtils]: 27: Hoare triple {2015#(<= main_~j~0 7)} assume true; {2015#(<= main_~j~0 7)} is VALID [2018-11-14 19:10:56,746 INFO L273 TraceCheckUtils]: 28: Hoare triple {2015#(<= main_~j~0 7)} assume !(~j~0 < 10); {2007#false} is VALID [2018-11-14 19:10:56,746 INFO L273 TraceCheckUtils]: 29: Hoare triple {2007#false} assume ~i~0 >= 0 && ~i~0 < 9;call write~int(~i~0, ~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4);call write~$Pointer$(~#a~0.base, ~#a~0.offset + ~i~0 * 4, ~#dummy~0.base, ~#dummy~0.offset + 0, 4);call write~$Pointer$(~#dummy~0.base, ~#dummy~0.offset, ~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call write~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + 0, ~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem9.base, #t~mem9.offset := read~$Pointer$(#t~mem8.base, #t~mem8.offset + ~i~0 * 4, 4);call #t~mem10.base, #t~mem10.offset := read~$Pointer$(#t~mem9.base, #t~mem9.offset + 0, 4);~pa~0.base, ~pa~0.offset := #t~mem10.base, #t~mem10.offset + ~i~0 * 4;havoc #t~mem10.base, #t~mem10.offset;havoc #t~mem9.base, #t~mem9.offset;havoc #t~mem8.base, #t~mem8.offset;call #t~mem11 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {2007#false} is VALID [2018-11-14 19:10:56,746 INFO L273 TraceCheckUtils]: 30: Hoare triple {2007#false} assume #t~mem11 > 0;havoc #t~mem11;call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(#t~mem12.base, #t~mem12.offset + 0, 4);call #t~mem14 := read~int(#t~mem13.base, #t~mem13.offset + ~i~0 * 4, 4);~i~0 := #t~mem14 - 10;havoc #t~mem12.base, #t~mem12.offset;havoc #t~mem13.base, #t~mem13.offset;havoc #t~mem14; {2007#false} is VALID [2018-11-14 19:10:56,747 INFO L273 TraceCheckUtils]: 31: Hoare triple {2007#false} assume true; {2007#false} is VALID [2018-11-14 19:10:56,747 INFO L273 TraceCheckUtils]: 32: Hoare triple {2007#false} call #t~mem15 := read~int(~pa~0.base, ~pa~0.offset, 4); {2007#false} is VALID [2018-11-14 19:10:56,747 INFO L273 TraceCheckUtils]: 33: Hoare triple {2007#false} assume !(~i~0 < #t~mem15);havoc #t~mem15; {2007#false} is VALID [2018-11-14 19:10:56,747 INFO L256 TraceCheckUtils]: 34: Hoare triple {2007#false} call #t~ret17 := check(~#cont~0.base, ~#cont~0.offset, ~i~0); {2006#true} is VALID [2018-11-14 19:10:56,748 INFO L273 TraceCheckUtils]: 35: Hoare triple {2006#true} ~pc.base, ~pc.offset := #in~pc.base, #in~pc.offset;~i := #in~i;call #t~mem0.base, #t~mem0.offset := read~$Pointer$(~pc.base, ~pc.offset + 0, 4);call #t~mem1.base, #t~mem1.offset := read~$Pointer$(#t~mem0.base, #t~mem0.offset + ~i * 4, 4);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(#t~mem1.base, #t~mem1.offset + 0, 4);call #t~mem3 := read~int(#t~mem2.base, #t~mem2.offset + ~i * 4, 4);#res := (if #t~mem3 == ~i then 1 else 0);havoc #t~mem3;havoc #t~mem0.base, #t~mem0.offset;havoc #t~mem1.base, #t~mem1.offset;havoc #t~mem2.base, #t~mem2.offset; {2006#true} is VALID [2018-11-14 19:10:56,748 INFO L273 TraceCheckUtils]: 36: Hoare triple {2006#true} assume true; {2006#true} is VALID [2018-11-14 19:10:56,748 INFO L268 TraceCheckUtils]: 37: Hoare quadruple {2006#true} {2007#false} #60#return; {2007#false} is VALID [2018-11-14 19:10:56,748 INFO L273 TraceCheckUtils]: 38: Hoare triple {2007#false} assume -2147483648 <= #t~ret17 && #t~ret17 <= 2147483647; {2007#false} is VALID [2018-11-14 19:10:56,749 INFO L273 TraceCheckUtils]: 39: Hoare triple {2007#false} assume #t~ret17 == 0;havoc #t~ret17; {2007#false} is VALID [2018-11-14 19:10:56,749 INFO L273 TraceCheckUtils]: 40: Hoare triple {2007#false} assume !false; {2007#false} is VALID [2018-11-14 19:10:56,750 INFO L134 CoverageAnalysis]: Checked inductivity of 77 backedges. 0 proven. 77 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 19:10:56,750 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-14 19:10:56,750 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-14 19:10:56,759 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 19:10:56,789 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:56,802 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:56,803 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-14 19:10:57,040 INFO L256 TraceCheckUtils]: 0: Hoare triple {2006#true} call ULTIMATE.init(); {2006#true} is VALID [2018-11-14 19:10:57,040 INFO L273 TraceCheckUtils]: 1: Hoare triple {2006#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {2006#true} is VALID [2018-11-14 19:10:57,040 INFO L273 TraceCheckUtils]: 2: Hoare triple {2006#true} assume true; {2006#true} is VALID [2018-11-14 19:10:57,041 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {2006#true} {2006#true} #62#return; {2006#true} is VALID [2018-11-14 19:10:57,041 INFO L256 TraceCheckUtils]: 4: Hoare triple {2006#true} call #t~ret18 := main(); {2006#true} is VALID [2018-11-14 19:10:57,049 INFO L273 TraceCheckUtils]: 5: Hoare triple {2006#true} call ~#cont~0.base, ~#cont~0.offset := #Ultimate.alloc(4);call ~#dummy~0.base, ~#dummy~0.offset := #Ultimate.alloc(4);call ~#dummies~0.base, ~#dummies~0.offset := #Ultimate.alloc(40);call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(40);havoc ~i~0;havoc ~pa~0.base, ~pa~0.offset;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~i~0 := #t~nondet4;havoc #t~nondet4;~j~0 := 0; {2034#(<= main_~j~0 0)} is VALID [2018-11-14 19:10:57,050 INFO L273 TraceCheckUtils]: 6: Hoare triple {2034#(<= main_~j~0 0)} assume true; {2034#(<= main_~j~0 0)} is VALID [2018-11-14 19:10:57,050 INFO L273 TraceCheckUtils]: 7: Hoare triple {2034#(<= main_~j~0 0)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2034#(<= main_~j~0 0)} is VALID [2018-11-14 19:10:57,051 INFO L273 TraceCheckUtils]: 8: Hoare triple {2034#(<= main_~j~0 0)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2009#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:57,051 INFO L273 TraceCheckUtils]: 9: Hoare triple {2009#(<= main_~j~0 1)} assume true; {2009#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:57,051 INFO L273 TraceCheckUtils]: 10: Hoare triple {2009#(<= main_~j~0 1)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2009#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:57,052 INFO L273 TraceCheckUtils]: 11: Hoare triple {2009#(<= main_~j~0 1)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2010#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:57,053 INFO L273 TraceCheckUtils]: 12: Hoare triple {2010#(<= main_~j~0 2)} assume true; {2010#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:57,053 INFO L273 TraceCheckUtils]: 13: Hoare triple {2010#(<= main_~j~0 2)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2010#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:57,054 INFO L273 TraceCheckUtils]: 14: Hoare triple {2010#(<= main_~j~0 2)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2011#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:57,055 INFO L273 TraceCheckUtils]: 15: Hoare triple {2011#(<= main_~j~0 3)} assume true; {2011#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:57,055 INFO L273 TraceCheckUtils]: 16: Hoare triple {2011#(<= main_~j~0 3)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2011#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:57,056 INFO L273 TraceCheckUtils]: 17: Hoare triple {2011#(<= main_~j~0 3)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2012#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:57,057 INFO L273 TraceCheckUtils]: 18: Hoare triple {2012#(<= main_~j~0 4)} assume true; {2012#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:57,057 INFO L273 TraceCheckUtils]: 19: Hoare triple {2012#(<= main_~j~0 4)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2012#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:57,058 INFO L273 TraceCheckUtils]: 20: Hoare triple {2012#(<= main_~j~0 4)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2013#(<= main_~j~0 5)} is VALID [2018-11-14 19:10:57,059 INFO L273 TraceCheckUtils]: 21: Hoare triple {2013#(<= main_~j~0 5)} assume true; {2013#(<= main_~j~0 5)} is VALID [2018-11-14 19:10:57,059 INFO L273 TraceCheckUtils]: 22: Hoare triple {2013#(<= main_~j~0 5)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2013#(<= main_~j~0 5)} is VALID [2018-11-14 19:10:57,060 INFO L273 TraceCheckUtils]: 23: Hoare triple {2013#(<= main_~j~0 5)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2014#(<= main_~j~0 6)} is VALID [2018-11-14 19:10:57,061 INFO L273 TraceCheckUtils]: 24: Hoare triple {2014#(<= main_~j~0 6)} assume true; {2014#(<= main_~j~0 6)} is VALID [2018-11-14 19:10:57,076 INFO L273 TraceCheckUtils]: 25: Hoare triple {2014#(<= main_~j~0 6)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2014#(<= main_~j~0 6)} is VALID [2018-11-14 19:10:57,077 INFO L273 TraceCheckUtils]: 26: Hoare triple {2014#(<= main_~j~0 6)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2015#(<= main_~j~0 7)} is VALID [2018-11-14 19:10:57,077 INFO L273 TraceCheckUtils]: 27: Hoare triple {2015#(<= main_~j~0 7)} assume true; {2015#(<= main_~j~0 7)} is VALID [2018-11-14 19:10:57,078 INFO L273 TraceCheckUtils]: 28: Hoare triple {2015#(<= main_~j~0 7)} assume !(~j~0 < 10); {2007#false} is VALID [2018-11-14 19:10:57,078 INFO L273 TraceCheckUtils]: 29: Hoare triple {2007#false} assume ~i~0 >= 0 && ~i~0 < 9;call write~int(~i~0, ~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4);call write~$Pointer$(~#a~0.base, ~#a~0.offset + ~i~0 * 4, ~#dummy~0.base, ~#dummy~0.offset + 0, 4);call write~$Pointer$(~#dummy~0.base, ~#dummy~0.offset, ~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call write~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + 0, ~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem9.base, #t~mem9.offset := read~$Pointer$(#t~mem8.base, #t~mem8.offset + ~i~0 * 4, 4);call #t~mem10.base, #t~mem10.offset := read~$Pointer$(#t~mem9.base, #t~mem9.offset + 0, 4);~pa~0.base, ~pa~0.offset := #t~mem10.base, #t~mem10.offset + ~i~0 * 4;havoc #t~mem10.base, #t~mem10.offset;havoc #t~mem9.base, #t~mem9.offset;havoc #t~mem8.base, #t~mem8.offset;call #t~mem11 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {2007#false} is VALID [2018-11-14 19:10:57,078 INFO L273 TraceCheckUtils]: 30: Hoare triple {2007#false} assume #t~mem11 > 0;havoc #t~mem11;call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(#t~mem12.base, #t~mem12.offset + 0, 4);call #t~mem14 := read~int(#t~mem13.base, #t~mem13.offset + ~i~0 * 4, 4);~i~0 := #t~mem14 - 10;havoc #t~mem12.base, #t~mem12.offset;havoc #t~mem13.base, #t~mem13.offset;havoc #t~mem14; {2007#false} is VALID [2018-11-14 19:10:57,078 INFO L273 TraceCheckUtils]: 31: Hoare triple {2007#false} assume true; {2007#false} is VALID [2018-11-14 19:10:57,078 INFO L273 TraceCheckUtils]: 32: Hoare triple {2007#false} call #t~mem15 := read~int(~pa~0.base, ~pa~0.offset, 4); {2007#false} is VALID [2018-11-14 19:10:57,078 INFO L273 TraceCheckUtils]: 33: Hoare triple {2007#false} assume !(~i~0 < #t~mem15);havoc #t~mem15; {2007#false} is VALID [2018-11-14 19:10:57,079 INFO L256 TraceCheckUtils]: 34: Hoare triple {2007#false} call #t~ret17 := check(~#cont~0.base, ~#cont~0.offset, ~i~0); {2007#false} is VALID [2018-11-14 19:10:57,079 INFO L273 TraceCheckUtils]: 35: Hoare triple {2007#false} ~pc.base, ~pc.offset := #in~pc.base, #in~pc.offset;~i := #in~i;call #t~mem0.base, #t~mem0.offset := read~$Pointer$(~pc.base, ~pc.offset + 0, 4);call #t~mem1.base, #t~mem1.offset := read~$Pointer$(#t~mem0.base, #t~mem0.offset + ~i * 4, 4);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(#t~mem1.base, #t~mem1.offset + 0, 4);call #t~mem3 := read~int(#t~mem2.base, #t~mem2.offset + ~i * 4, 4);#res := (if #t~mem3 == ~i then 1 else 0);havoc #t~mem3;havoc #t~mem0.base, #t~mem0.offset;havoc #t~mem1.base, #t~mem1.offset;havoc #t~mem2.base, #t~mem2.offset; {2007#false} is VALID [2018-11-14 19:10:57,079 INFO L273 TraceCheckUtils]: 36: Hoare triple {2007#false} assume true; {2007#false} is VALID [2018-11-14 19:10:57,079 INFO L268 TraceCheckUtils]: 37: Hoare quadruple {2007#false} {2007#false} #60#return; {2007#false} is VALID [2018-11-14 19:10:57,079 INFO L273 TraceCheckUtils]: 38: Hoare triple {2007#false} assume -2147483648 <= #t~ret17 && #t~ret17 <= 2147483647; {2007#false} is VALID [2018-11-14 19:10:57,079 INFO L273 TraceCheckUtils]: 39: Hoare triple {2007#false} assume #t~ret17 == 0;havoc #t~ret17; {2007#false} is VALID [2018-11-14 19:10:57,079 INFO L273 TraceCheckUtils]: 40: Hoare triple {2007#false} assume !false; {2007#false} is VALID [2018-11-14 19:10:57,081 INFO L134 CoverageAnalysis]: Checked inductivity of 77 backedges. 0 proven. 77 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 19:10:57,103 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-14 19:10:57,103 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 10] total 11 [2018-11-14 19:10:57,103 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 41 [2018-11-14 19:10:57,104 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 19:10:57,104 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states. [2018-11-14 19:10:57,178 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 49 edges. 49 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:10:57,178 INFO L459 AbstractCegarLoop]: Interpolant automaton has 11 states [2018-11-14 19:10:57,178 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2018-11-14 19:10:57,179 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=55, Invalid=55, Unknown=0, NotChecked=0, Total=110 [2018-11-14 19:10:57,179 INFO L87 Difference]: Start difference. First operand 42 states and 43 transitions. Second operand 11 states. [2018-11-14 19:10:57,431 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:57,431 INFO L93 Difference]: Finished difference Result 59 states and 61 transitions. [2018-11-14 19:10:57,431 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2018-11-14 19:10:57,431 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 41 [2018-11-14 19:10:57,431 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 19:10:57,432 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2018-11-14 19:10:57,433 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 61 transitions. [2018-11-14 19:10:57,434 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2018-11-14 19:10:57,435 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 61 transitions. [2018-11-14 19:10:57,435 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 61 transitions. [2018-11-14 19:10:57,538 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 61 edges. 61 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:10:57,540 INFO L225 Difference]: With dead ends: 59 [2018-11-14 19:10:57,541 INFO L226 Difference]: Without dead ends: 46 [2018-11-14 19:10:57,542 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 50 GetRequests, 41 SyntacticMatches, 0 SemanticMatches, 9 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=55, Invalid=55, Unknown=0, NotChecked=0, Total=110 [2018-11-14 19:10:57,543 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 46 states. [2018-11-14 19:10:57,566 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 46 to 45. [2018-11-14 19:10:57,566 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 19:10:57,566 INFO L82 GeneralOperation]: Start isEquivalent. First operand 46 states. Second operand 45 states. [2018-11-14 19:10:57,566 INFO L74 IsIncluded]: Start isIncluded. First operand 46 states. Second operand 45 states. [2018-11-14 19:10:57,566 INFO L87 Difference]: Start difference. First operand 46 states. Second operand 45 states. [2018-11-14 19:10:57,569 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:57,569 INFO L93 Difference]: Finished difference Result 46 states and 47 transitions. [2018-11-14 19:10:57,569 INFO L276 IsEmpty]: Start isEmpty. Operand 46 states and 47 transitions. [2018-11-14 19:10:57,570 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:57,570 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:57,570 INFO L74 IsIncluded]: Start isIncluded. First operand 45 states. Second operand 46 states. [2018-11-14 19:10:57,570 INFO L87 Difference]: Start difference. First operand 45 states. Second operand 46 states. [2018-11-14 19:10:57,572 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:57,572 INFO L93 Difference]: Finished difference Result 46 states and 47 transitions. [2018-11-14 19:10:57,572 INFO L276 IsEmpty]: Start isEmpty. Operand 46 states and 47 transitions. [2018-11-14 19:10:57,572 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:57,573 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:57,573 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 19:10:57,573 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 19:10:57,573 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 45 states. [2018-11-14 19:10:57,574 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 45 states to 45 states and 46 transitions. [2018-11-14 19:10:57,575 INFO L78 Accepts]: Start accepts. Automaton has 45 states and 46 transitions. Word has length 41 [2018-11-14 19:10:57,575 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 19:10:57,575 INFO L480 AbstractCegarLoop]: Abstraction has 45 states and 46 transitions. [2018-11-14 19:10:57,575 INFO L481 AbstractCegarLoop]: Interpolant automaton has 11 states. [2018-11-14 19:10:57,575 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 46 transitions. [2018-11-14 19:10:57,576 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 45 [2018-11-14 19:10:57,576 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:10:57,576 INFO L375 BasicCegarLoop]: trace histogram [9, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 19:10:57,576 INFO L423 AbstractCegarLoop]: === Iteration 10 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:10:57,576 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:10:57,576 INFO L82 PathProgramCache]: Analyzing trace with hash 366879643, now seen corresponding path program 8 times [2018-11-14 19:10:57,577 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:10:57,577 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:10:57,578 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:57,578 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 19:10:57,578 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:57,598 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:57,774 INFO L256 TraceCheckUtils]: 0: Hoare triple {2373#true} call ULTIMATE.init(); {2373#true} is VALID [2018-11-14 19:10:57,775 INFO L273 TraceCheckUtils]: 1: Hoare triple {2373#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {2373#true} is VALID [2018-11-14 19:10:57,775 INFO L273 TraceCheckUtils]: 2: Hoare triple {2373#true} assume true; {2373#true} is VALID [2018-11-14 19:10:57,775 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {2373#true} {2373#true} #62#return; {2373#true} is VALID [2018-11-14 19:10:57,775 INFO L256 TraceCheckUtils]: 4: Hoare triple {2373#true} call #t~ret18 := main(); {2373#true} is VALID [2018-11-14 19:10:57,776 INFO L273 TraceCheckUtils]: 5: Hoare triple {2373#true} call ~#cont~0.base, ~#cont~0.offset := #Ultimate.alloc(4);call ~#dummy~0.base, ~#dummy~0.offset := #Ultimate.alloc(4);call ~#dummies~0.base, ~#dummies~0.offset := #Ultimate.alloc(40);call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(40);havoc ~i~0;havoc ~pa~0.base, ~pa~0.offset;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~i~0 := #t~nondet4;havoc #t~nondet4;~j~0 := 0; {2375#(= main_~j~0 0)} is VALID [2018-11-14 19:10:57,776 INFO L273 TraceCheckUtils]: 6: Hoare triple {2375#(= main_~j~0 0)} assume true; {2375#(= main_~j~0 0)} is VALID [2018-11-14 19:10:57,776 INFO L273 TraceCheckUtils]: 7: Hoare triple {2375#(= main_~j~0 0)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2375#(= main_~j~0 0)} is VALID [2018-11-14 19:10:57,777 INFO L273 TraceCheckUtils]: 8: Hoare triple {2375#(= main_~j~0 0)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2376#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:57,777 INFO L273 TraceCheckUtils]: 9: Hoare triple {2376#(<= main_~j~0 1)} assume true; {2376#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:57,778 INFO L273 TraceCheckUtils]: 10: Hoare triple {2376#(<= main_~j~0 1)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2376#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:57,778 INFO L273 TraceCheckUtils]: 11: Hoare triple {2376#(<= main_~j~0 1)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2377#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:57,779 INFO L273 TraceCheckUtils]: 12: Hoare triple {2377#(<= main_~j~0 2)} assume true; {2377#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:57,780 INFO L273 TraceCheckUtils]: 13: Hoare triple {2377#(<= main_~j~0 2)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2377#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:57,780 INFO L273 TraceCheckUtils]: 14: Hoare triple {2377#(<= main_~j~0 2)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2378#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:57,781 INFO L273 TraceCheckUtils]: 15: Hoare triple {2378#(<= main_~j~0 3)} assume true; {2378#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:57,782 INFO L273 TraceCheckUtils]: 16: Hoare triple {2378#(<= main_~j~0 3)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2378#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:57,782 INFO L273 TraceCheckUtils]: 17: Hoare triple {2378#(<= main_~j~0 3)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2379#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:57,783 INFO L273 TraceCheckUtils]: 18: Hoare triple {2379#(<= main_~j~0 4)} assume true; {2379#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:57,784 INFO L273 TraceCheckUtils]: 19: Hoare triple {2379#(<= main_~j~0 4)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2379#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:57,784 INFO L273 TraceCheckUtils]: 20: Hoare triple {2379#(<= main_~j~0 4)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2380#(<= main_~j~0 5)} is VALID [2018-11-14 19:10:57,785 INFO L273 TraceCheckUtils]: 21: Hoare triple {2380#(<= main_~j~0 5)} assume true; {2380#(<= main_~j~0 5)} is VALID [2018-11-14 19:10:57,786 INFO L273 TraceCheckUtils]: 22: Hoare triple {2380#(<= main_~j~0 5)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2380#(<= main_~j~0 5)} is VALID [2018-11-14 19:10:57,786 INFO L273 TraceCheckUtils]: 23: Hoare triple {2380#(<= main_~j~0 5)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2381#(<= main_~j~0 6)} is VALID [2018-11-14 19:10:57,787 INFO L273 TraceCheckUtils]: 24: Hoare triple {2381#(<= main_~j~0 6)} assume true; {2381#(<= main_~j~0 6)} is VALID [2018-11-14 19:10:57,788 INFO L273 TraceCheckUtils]: 25: Hoare triple {2381#(<= main_~j~0 6)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2381#(<= main_~j~0 6)} is VALID [2018-11-14 19:10:57,788 INFO L273 TraceCheckUtils]: 26: Hoare triple {2381#(<= main_~j~0 6)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2382#(<= main_~j~0 7)} is VALID [2018-11-14 19:10:57,804 INFO L273 TraceCheckUtils]: 27: Hoare triple {2382#(<= main_~j~0 7)} assume true; {2382#(<= main_~j~0 7)} is VALID [2018-11-14 19:10:57,805 INFO L273 TraceCheckUtils]: 28: Hoare triple {2382#(<= main_~j~0 7)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2382#(<= main_~j~0 7)} is VALID [2018-11-14 19:10:57,805 INFO L273 TraceCheckUtils]: 29: Hoare triple {2382#(<= main_~j~0 7)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2383#(<= main_~j~0 8)} is VALID [2018-11-14 19:10:57,806 INFO L273 TraceCheckUtils]: 30: Hoare triple {2383#(<= main_~j~0 8)} assume true; {2383#(<= main_~j~0 8)} is VALID [2018-11-14 19:10:57,806 INFO L273 TraceCheckUtils]: 31: Hoare triple {2383#(<= main_~j~0 8)} assume !(~j~0 < 10); {2374#false} is VALID [2018-11-14 19:10:57,806 INFO L273 TraceCheckUtils]: 32: Hoare triple {2374#false} assume ~i~0 >= 0 && ~i~0 < 9;call write~int(~i~0, ~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4);call write~$Pointer$(~#a~0.base, ~#a~0.offset + ~i~0 * 4, ~#dummy~0.base, ~#dummy~0.offset + 0, 4);call write~$Pointer$(~#dummy~0.base, ~#dummy~0.offset, ~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call write~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + 0, ~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem9.base, #t~mem9.offset := read~$Pointer$(#t~mem8.base, #t~mem8.offset + ~i~0 * 4, 4);call #t~mem10.base, #t~mem10.offset := read~$Pointer$(#t~mem9.base, #t~mem9.offset + 0, 4);~pa~0.base, ~pa~0.offset := #t~mem10.base, #t~mem10.offset + ~i~0 * 4;havoc #t~mem10.base, #t~mem10.offset;havoc #t~mem9.base, #t~mem9.offset;havoc #t~mem8.base, #t~mem8.offset;call #t~mem11 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {2374#false} is VALID [2018-11-14 19:10:57,806 INFO L273 TraceCheckUtils]: 33: Hoare triple {2374#false} assume #t~mem11 > 0;havoc #t~mem11;call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(#t~mem12.base, #t~mem12.offset + 0, 4);call #t~mem14 := read~int(#t~mem13.base, #t~mem13.offset + ~i~0 * 4, 4);~i~0 := #t~mem14 - 10;havoc #t~mem12.base, #t~mem12.offset;havoc #t~mem13.base, #t~mem13.offset;havoc #t~mem14; {2374#false} is VALID [2018-11-14 19:10:57,807 INFO L273 TraceCheckUtils]: 34: Hoare triple {2374#false} assume true; {2374#false} is VALID [2018-11-14 19:10:57,807 INFO L273 TraceCheckUtils]: 35: Hoare triple {2374#false} call #t~mem15 := read~int(~pa~0.base, ~pa~0.offset, 4); {2374#false} is VALID [2018-11-14 19:10:57,807 INFO L273 TraceCheckUtils]: 36: Hoare triple {2374#false} assume !(~i~0 < #t~mem15);havoc #t~mem15; {2374#false} is VALID [2018-11-14 19:10:57,807 INFO L256 TraceCheckUtils]: 37: Hoare triple {2374#false} call #t~ret17 := check(~#cont~0.base, ~#cont~0.offset, ~i~0); {2373#true} is VALID [2018-11-14 19:10:57,807 INFO L273 TraceCheckUtils]: 38: Hoare triple {2373#true} ~pc.base, ~pc.offset := #in~pc.base, #in~pc.offset;~i := #in~i;call #t~mem0.base, #t~mem0.offset := read~$Pointer$(~pc.base, ~pc.offset + 0, 4);call #t~mem1.base, #t~mem1.offset := read~$Pointer$(#t~mem0.base, #t~mem0.offset + ~i * 4, 4);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(#t~mem1.base, #t~mem1.offset + 0, 4);call #t~mem3 := read~int(#t~mem2.base, #t~mem2.offset + ~i * 4, 4);#res := (if #t~mem3 == ~i then 1 else 0);havoc #t~mem3;havoc #t~mem0.base, #t~mem0.offset;havoc #t~mem1.base, #t~mem1.offset;havoc #t~mem2.base, #t~mem2.offset; {2373#true} is VALID [2018-11-14 19:10:57,807 INFO L273 TraceCheckUtils]: 39: Hoare triple {2373#true} assume true; {2373#true} is VALID [2018-11-14 19:10:57,808 INFO L268 TraceCheckUtils]: 40: Hoare quadruple {2373#true} {2374#false} #60#return; {2374#false} is VALID [2018-11-14 19:10:57,808 INFO L273 TraceCheckUtils]: 41: Hoare triple {2374#false} assume -2147483648 <= #t~ret17 && #t~ret17 <= 2147483647; {2374#false} is VALID [2018-11-14 19:10:57,808 INFO L273 TraceCheckUtils]: 42: Hoare triple {2374#false} assume #t~ret17 == 0;havoc #t~ret17; {2374#false} is VALID [2018-11-14 19:10:57,808 INFO L273 TraceCheckUtils]: 43: Hoare triple {2374#false} assume !false; {2374#false} is VALID [2018-11-14 19:10:57,810 INFO L134 CoverageAnalysis]: Checked inductivity of 100 backedges. 0 proven. 100 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 19:10:57,810 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-14 19:10:57,810 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-14 19:10:57,822 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST1 [2018-11-14 19:10:57,875 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2018-11-14 19:10:57,875 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-14 19:10:57,913 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:57,915 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-14 19:10:58,483 INFO L256 TraceCheckUtils]: 0: Hoare triple {2373#true} call ULTIMATE.init(); {2373#true} is VALID [2018-11-14 19:10:58,483 INFO L273 TraceCheckUtils]: 1: Hoare triple {2373#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {2373#true} is VALID [2018-11-14 19:10:58,483 INFO L273 TraceCheckUtils]: 2: Hoare triple {2373#true} assume true; {2373#true} is VALID [2018-11-14 19:10:58,483 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {2373#true} {2373#true} #62#return; {2373#true} is VALID [2018-11-14 19:10:58,484 INFO L256 TraceCheckUtils]: 4: Hoare triple {2373#true} call #t~ret18 := main(); {2373#true} is VALID [2018-11-14 19:10:58,484 INFO L273 TraceCheckUtils]: 5: Hoare triple {2373#true} call ~#cont~0.base, ~#cont~0.offset := #Ultimate.alloc(4);call ~#dummy~0.base, ~#dummy~0.offset := #Ultimate.alloc(4);call ~#dummies~0.base, ~#dummies~0.offset := #Ultimate.alloc(40);call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(40);havoc ~i~0;havoc ~pa~0.base, ~pa~0.offset;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~i~0 := #t~nondet4;havoc #t~nondet4;~j~0 := 0; {2402#(<= main_~j~0 0)} is VALID [2018-11-14 19:10:58,486 INFO L273 TraceCheckUtils]: 6: Hoare triple {2402#(<= main_~j~0 0)} assume true; {2402#(<= main_~j~0 0)} is VALID [2018-11-14 19:10:58,489 INFO L273 TraceCheckUtils]: 7: Hoare triple {2402#(<= main_~j~0 0)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2402#(<= main_~j~0 0)} is VALID [2018-11-14 19:10:58,489 INFO L273 TraceCheckUtils]: 8: Hoare triple {2402#(<= main_~j~0 0)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2376#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:58,492 INFO L273 TraceCheckUtils]: 9: Hoare triple {2376#(<= main_~j~0 1)} assume true; {2376#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:58,492 INFO L273 TraceCheckUtils]: 10: Hoare triple {2376#(<= main_~j~0 1)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2376#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:58,495 INFO L273 TraceCheckUtils]: 11: Hoare triple {2376#(<= main_~j~0 1)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2377#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:58,495 INFO L273 TraceCheckUtils]: 12: Hoare triple {2377#(<= main_~j~0 2)} assume true; {2377#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:58,497 INFO L273 TraceCheckUtils]: 13: Hoare triple {2377#(<= main_~j~0 2)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2377#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:58,497 INFO L273 TraceCheckUtils]: 14: Hoare triple {2377#(<= main_~j~0 2)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2378#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:58,500 INFO L273 TraceCheckUtils]: 15: Hoare triple {2378#(<= main_~j~0 3)} assume true; {2378#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:58,518 INFO L273 TraceCheckUtils]: 16: Hoare triple {2378#(<= main_~j~0 3)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2378#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:58,519 INFO L273 TraceCheckUtils]: 17: Hoare triple {2378#(<= main_~j~0 3)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2379#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:58,519 INFO L273 TraceCheckUtils]: 18: Hoare triple {2379#(<= main_~j~0 4)} assume true; {2379#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:58,521 INFO L273 TraceCheckUtils]: 19: Hoare triple {2379#(<= main_~j~0 4)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2379#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:58,521 INFO L273 TraceCheckUtils]: 20: Hoare triple {2379#(<= main_~j~0 4)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2380#(<= main_~j~0 5)} is VALID [2018-11-14 19:10:58,522 INFO L273 TraceCheckUtils]: 21: Hoare triple {2380#(<= main_~j~0 5)} assume true; {2380#(<= main_~j~0 5)} is VALID [2018-11-14 19:10:58,523 INFO L273 TraceCheckUtils]: 22: Hoare triple {2380#(<= main_~j~0 5)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2380#(<= main_~j~0 5)} is VALID [2018-11-14 19:10:58,523 INFO L273 TraceCheckUtils]: 23: Hoare triple {2380#(<= main_~j~0 5)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2381#(<= main_~j~0 6)} is VALID [2018-11-14 19:10:58,525 INFO L273 TraceCheckUtils]: 24: Hoare triple {2381#(<= main_~j~0 6)} assume true; {2381#(<= main_~j~0 6)} is VALID [2018-11-14 19:10:58,525 INFO L273 TraceCheckUtils]: 25: Hoare triple {2381#(<= main_~j~0 6)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2381#(<= main_~j~0 6)} is VALID [2018-11-14 19:10:58,527 INFO L273 TraceCheckUtils]: 26: Hoare triple {2381#(<= main_~j~0 6)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2382#(<= main_~j~0 7)} is VALID [2018-11-14 19:10:58,527 INFO L273 TraceCheckUtils]: 27: Hoare triple {2382#(<= main_~j~0 7)} assume true; {2382#(<= main_~j~0 7)} is VALID [2018-11-14 19:10:58,529 INFO L273 TraceCheckUtils]: 28: Hoare triple {2382#(<= main_~j~0 7)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2382#(<= main_~j~0 7)} is VALID [2018-11-14 19:10:58,529 INFO L273 TraceCheckUtils]: 29: Hoare triple {2382#(<= main_~j~0 7)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2383#(<= main_~j~0 8)} is VALID [2018-11-14 19:10:58,531 INFO L273 TraceCheckUtils]: 30: Hoare triple {2383#(<= main_~j~0 8)} assume true; {2383#(<= main_~j~0 8)} is VALID [2018-11-14 19:10:58,531 INFO L273 TraceCheckUtils]: 31: Hoare triple {2383#(<= main_~j~0 8)} assume !(~j~0 < 10); {2374#false} is VALID [2018-11-14 19:10:58,531 INFO L273 TraceCheckUtils]: 32: Hoare triple {2374#false} assume ~i~0 >= 0 && ~i~0 < 9;call write~int(~i~0, ~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4);call write~$Pointer$(~#a~0.base, ~#a~0.offset + ~i~0 * 4, ~#dummy~0.base, ~#dummy~0.offset + 0, 4);call write~$Pointer$(~#dummy~0.base, ~#dummy~0.offset, ~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call write~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + 0, ~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem9.base, #t~mem9.offset := read~$Pointer$(#t~mem8.base, #t~mem8.offset + ~i~0 * 4, 4);call #t~mem10.base, #t~mem10.offset := read~$Pointer$(#t~mem9.base, #t~mem9.offset + 0, 4);~pa~0.base, ~pa~0.offset := #t~mem10.base, #t~mem10.offset + ~i~0 * 4;havoc #t~mem10.base, #t~mem10.offset;havoc #t~mem9.base, #t~mem9.offset;havoc #t~mem8.base, #t~mem8.offset;call #t~mem11 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {2374#false} is VALID [2018-11-14 19:10:58,531 INFO L273 TraceCheckUtils]: 33: Hoare triple {2374#false} assume #t~mem11 > 0;havoc #t~mem11;call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(#t~mem12.base, #t~mem12.offset + 0, 4);call #t~mem14 := read~int(#t~mem13.base, #t~mem13.offset + ~i~0 * 4, 4);~i~0 := #t~mem14 - 10;havoc #t~mem12.base, #t~mem12.offset;havoc #t~mem13.base, #t~mem13.offset;havoc #t~mem14; {2374#false} is VALID [2018-11-14 19:10:58,531 INFO L273 TraceCheckUtils]: 34: Hoare triple {2374#false} assume true; {2374#false} is VALID [2018-11-14 19:10:58,532 INFO L273 TraceCheckUtils]: 35: Hoare triple {2374#false} call #t~mem15 := read~int(~pa~0.base, ~pa~0.offset, 4); {2374#false} is VALID [2018-11-14 19:10:58,532 INFO L273 TraceCheckUtils]: 36: Hoare triple {2374#false} assume !(~i~0 < #t~mem15);havoc #t~mem15; {2374#false} is VALID [2018-11-14 19:10:58,532 INFO L256 TraceCheckUtils]: 37: Hoare triple {2374#false} call #t~ret17 := check(~#cont~0.base, ~#cont~0.offset, ~i~0); {2374#false} is VALID [2018-11-14 19:10:58,532 INFO L273 TraceCheckUtils]: 38: Hoare triple {2374#false} ~pc.base, ~pc.offset := #in~pc.base, #in~pc.offset;~i := #in~i;call #t~mem0.base, #t~mem0.offset := read~$Pointer$(~pc.base, ~pc.offset + 0, 4);call #t~mem1.base, #t~mem1.offset := read~$Pointer$(#t~mem0.base, #t~mem0.offset + ~i * 4, 4);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(#t~mem1.base, #t~mem1.offset + 0, 4);call #t~mem3 := read~int(#t~mem2.base, #t~mem2.offset + ~i * 4, 4);#res := (if #t~mem3 == ~i then 1 else 0);havoc #t~mem3;havoc #t~mem0.base, #t~mem0.offset;havoc #t~mem1.base, #t~mem1.offset;havoc #t~mem2.base, #t~mem2.offset; {2374#false} is VALID [2018-11-14 19:10:58,532 INFO L273 TraceCheckUtils]: 39: Hoare triple {2374#false} assume true; {2374#false} is VALID [2018-11-14 19:10:58,532 INFO L268 TraceCheckUtils]: 40: Hoare quadruple {2374#false} {2374#false} #60#return; {2374#false} is VALID [2018-11-14 19:10:58,532 INFO L273 TraceCheckUtils]: 41: Hoare triple {2374#false} assume -2147483648 <= #t~ret17 && #t~ret17 <= 2147483647; {2374#false} is VALID [2018-11-14 19:10:58,533 INFO L273 TraceCheckUtils]: 42: Hoare triple {2374#false} assume #t~ret17 == 0;havoc #t~ret17; {2374#false} is VALID [2018-11-14 19:10:58,533 INFO L273 TraceCheckUtils]: 43: Hoare triple {2374#false} assume !false; {2374#false} is VALID [2018-11-14 19:10:58,534 INFO L134 CoverageAnalysis]: Checked inductivity of 100 backedges. 0 proven. 100 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 19:10:58,556 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-14 19:10:58,556 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 11] total 12 [2018-11-14 19:10:58,557 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 44 [2018-11-14 19:10:58,557 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 19:10:58,557 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2018-11-14 19:10:58,645 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:10:58,645 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2018-11-14 19:10:58,645 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2018-11-14 19:10:58,645 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=66, Invalid=66, Unknown=0, NotChecked=0, Total=132 [2018-11-14 19:10:58,646 INFO L87 Difference]: Start difference. First operand 45 states and 46 transitions. Second operand 12 states. [2018-11-14 19:10:58,963 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:58,964 INFO L93 Difference]: Finished difference Result 62 states and 64 transitions. [2018-11-14 19:10:58,964 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2018-11-14 19:10:58,964 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 44 [2018-11-14 19:10:58,965 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 19:10:58,965 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2018-11-14 19:10:58,967 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 64 transitions. [2018-11-14 19:10:58,967 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2018-11-14 19:10:58,969 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 64 transitions. [2018-11-14 19:10:58,969 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states and 64 transitions. [2018-11-14 19:10:59,039 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 64 edges. 64 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:10:59,040 INFO L225 Difference]: With dead ends: 62 [2018-11-14 19:10:59,040 INFO L226 Difference]: Without dead ends: 49 [2018-11-14 19:10:59,041 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 54 GetRequests, 44 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 14 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=66, Invalid=66, Unknown=0, NotChecked=0, Total=132 [2018-11-14 19:10:59,041 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 49 states. [2018-11-14 19:10:59,064 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 49 to 48. [2018-11-14 19:10:59,064 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 19:10:59,064 INFO L82 GeneralOperation]: Start isEquivalent. First operand 49 states. Second operand 48 states. [2018-11-14 19:10:59,064 INFO L74 IsIncluded]: Start isIncluded. First operand 49 states. Second operand 48 states. [2018-11-14 19:10:59,065 INFO L87 Difference]: Start difference. First operand 49 states. Second operand 48 states. [2018-11-14 19:10:59,067 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:59,067 INFO L93 Difference]: Finished difference Result 49 states and 50 transitions. [2018-11-14 19:10:59,067 INFO L276 IsEmpty]: Start isEmpty. Operand 49 states and 50 transitions. [2018-11-14 19:10:59,068 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:59,068 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:59,068 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand 49 states. [2018-11-14 19:10:59,068 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 49 states. [2018-11-14 19:10:59,069 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:59,069 INFO L93 Difference]: Finished difference Result 49 states and 50 transitions. [2018-11-14 19:10:59,070 INFO L276 IsEmpty]: Start isEmpty. Operand 49 states and 50 transitions. [2018-11-14 19:10:59,070 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:59,070 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:59,070 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 19:10:59,070 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 19:10:59,070 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 48 states. [2018-11-14 19:10:59,071 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 48 states to 48 states and 49 transitions. [2018-11-14 19:10:59,072 INFO L78 Accepts]: Start accepts. Automaton has 48 states and 49 transitions. Word has length 44 [2018-11-14 19:10:59,072 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 19:10:59,072 INFO L480 AbstractCegarLoop]: Abstraction has 48 states and 49 transitions. [2018-11-14 19:10:59,072 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2018-11-14 19:10:59,072 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 49 transitions. [2018-11-14 19:10:59,073 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 48 [2018-11-14 19:10:59,073 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:10:59,073 INFO L375 BasicCegarLoop]: trace histogram [10, 9, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 19:10:59,073 INFO L423 AbstractCegarLoop]: === Iteration 11 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:10:59,073 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:10:59,074 INFO L82 PathProgramCache]: Analyzing trace with hash -1395670851, now seen corresponding path program 9 times [2018-11-14 19:10:59,074 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:10:59,074 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:10:59,074 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:59,075 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-14 19:10:59,075 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:59,091 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:59,359 INFO L256 TraceCheckUtils]: 0: Hoare triple {2764#true} call ULTIMATE.init(); {2764#true} is VALID [2018-11-14 19:10:59,360 INFO L273 TraceCheckUtils]: 1: Hoare triple {2764#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {2764#true} is VALID [2018-11-14 19:10:59,360 INFO L273 TraceCheckUtils]: 2: Hoare triple {2764#true} assume true; {2764#true} is VALID [2018-11-14 19:10:59,360 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {2764#true} {2764#true} #62#return; {2764#true} is VALID [2018-11-14 19:10:59,360 INFO L256 TraceCheckUtils]: 4: Hoare triple {2764#true} call #t~ret18 := main(); {2764#true} is VALID [2018-11-14 19:10:59,361 INFO L273 TraceCheckUtils]: 5: Hoare triple {2764#true} call ~#cont~0.base, ~#cont~0.offset := #Ultimate.alloc(4);call ~#dummy~0.base, ~#dummy~0.offset := #Ultimate.alloc(4);call ~#dummies~0.base, ~#dummies~0.offset := #Ultimate.alloc(40);call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(40);havoc ~i~0;havoc ~pa~0.base, ~pa~0.offset;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~i~0 := #t~nondet4;havoc #t~nondet4;~j~0 := 0; {2766#(= main_~j~0 0)} is VALID [2018-11-14 19:10:59,362 INFO L273 TraceCheckUtils]: 6: Hoare triple {2766#(= main_~j~0 0)} assume true; {2766#(= main_~j~0 0)} is VALID [2018-11-14 19:10:59,362 INFO L273 TraceCheckUtils]: 7: Hoare triple {2766#(= main_~j~0 0)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2766#(= main_~j~0 0)} is VALID [2018-11-14 19:10:59,363 INFO L273 TraceCheckUtils]: 8: Hoare triple {2766#(= main_~j~0 0)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2767#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:59,363 INFO L273 TraceCheckUtils]: 9: Hoare triple {2767#(<= main_~j~0 1)} assume true; {2767#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:59,364 INFO L273 TraceCheckUtils]: 10: Hoare triple {2767#(<= main_~j~0 1)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2767#(<= main_~j~0 1)} is VALID [2018-11-14 19:10:59,365 INFO L273 TraceCheckUtils]: 11: Hoare triple {2767#(<= main_~j~0 1)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2768#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:59,365 INFO L273 TraceCheckUtils]: 12: Hoare triple {2768#(<= main_~j~0 2)} assume true; {2768#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:59,366 INFO L273 TraceCheckUtils]: 13: Hoare triple {2768#(<= main_~j~0 2)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2768#(<= main_~j~0 2)} is VALID [2018-11-14 19:10:59,367 INFO L273 TraceCheckUtils]: 14: Hoare triple {2768#(<= main_~j~0 2)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2769#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:59,367 INFO L273 TraceCheckUtils]: 15: Hoare triple {2769#(<= main_~j~0 3)} assume true; {2769#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:59,368 INFO L273 TraceCheckUtils]: 16: Hoare triple {2769#(<= main_~j~0 3)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2769#(<= main_~j~0 3)} is VALID [2018-11-14 19:10:59,369 INFO L273 TraceCheckUtils]: 17: Hoare triple {2769#(<= main_~j~0 3)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2770#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:59,369 INFO L273 TraceCheckUtils]: 18: Hoare triple {2770#(<= main_~j~0 4)} assume true; {2770#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:59,370 INFO L273 TraceCheckUtils]: 19: Hoare triple {2770#(<= main_~j~0 4)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2770#(<= main_~j~0 4)} is VALID [2018-11-14 19:10:59,371 INFO L273 TraceCheckUtils]: 20: Hoare triple {2770#(<= main_~j~0 4)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2771#(<= main_~j~0 5)} is VALID [2018-11-14 19:10:59,371 INFO L273 TraceCheckUtils]: 21: Hoare triple {2771#(<= main_~j~0 5)} assume true; {2771#(<= main_~j~0 5)} is VALID [2018-11-14 19:10:59,372 INFO L273 TraceCheckUtils]: 22: Hoare triple {2771#(<= main_~j~0 5)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2771#(<= main_~j~0 5)} is VALID [2018-11-14 19:10:59,373 INFO L273 TraceCheckUtils]: 23: Hoare triple {2771#(<= main_~j~0 5)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2772#(<= main_~j~0 6)} is VALID [2018-11-14 19:10:59,373 INFO L273 TraceCheckUtils]: 24: Hoare triple {2772#(<= main_~j~0 6)} assume true; {2772#(<= main_~j~0 6)} is VALID [2018-11-14 19:10:59,378 INFO L273 TraceCheckUtils]: 25: Hoare triple {2772#(<= main_~j~0 6)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2772#(<= main_~j~0 6)} is VALID [2018-11-14 19:10:59,379 INFO L273 TraceCheckUtils]: 26: Hoare triple {2772#(<= main_~j~0 6)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2773#(<= main_~j~0 7)} is VALID [2018-11-14 19:10:59,379 INFO L273 TraceCheckUtils]: 27: Hoare triple {2773#(<= main_~j~0 7)} assume true; {2773#(<= main_~j~0 7)} is VALID [2018-11-14 19:10:59,380 INFO L273 TraceCheckUtils]: 28: Hoare triple {2773#(<= main_~j~0 7)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2773#(<= main_~j~0 7)} is VALID [2018-11-14 19:10:59,380 INFO L273 TraceCheckUtils]: 29: Hoare triple {2773#(<= main_~j~0 7)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2774#(<= main_~j~0 8)} is VALID [2018-11-14 19:10:59,381 INFO L273 TraceCheckUtils]: 30: Hoare triple {2774#(<= main_~j~0 8)} assume true; {2774#(<= main_~j~0 8)} is VALID [2018-11-14 19:10:59,381 INFO L273 TraceCheckUtils]: 31: Hoare triple {2774#(<= main_~j~0 8)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2774#(<= main_~j~0 8)} is VALID [2018-11-14 19:10:59,382 INFO L273 TraceCheckUtils]: 32: Hoare triple {2774#(<= main_~j~0 8)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2775#(<= main_~j~0 9)} is VALID [2018-11-14 19:10:59,382 INFO L273 TraceCheckUtils]: 33: Hoare triple {2775#(<= main_~j~0 9)} assume true; {2775#(<= main_~j~0 9)} is VALID [2018-11-14 19:10:59,383 INFO L273 TraceCheckUtils]: 34: Hoare triple {2775#(<= main_~j~0 9)} assume !(~j~0 < 10); {2765#false} is VALID [2018-11-14 19:10:59,383 INFO L273 TraceCheckUtils]: 35: Hoare triple {2765#false} assume ~i~0 >= 0 && ~i~0 < 9;call write~int(~i~0, ~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4);call write~$Pointer$(~#a~0.base, ~#a~0.offset + ~i~0 * 4, ~#dummy~0.base, ~#dummy~0.offset + 0, 4);call write~$Pointer$(~#dummy~0.base, ~#dummy~0.offset, ~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call write~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + 0, ~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem9.base, #t~mem9.offset := read~$Pointer$(#t~mem8.base, #t~mem8.offset + ~i~0 * 4, 4);call #t~mem10.base, #t~mem10.offset := read~$Pointer$(#t~mem9.base, #t~mem9.offset + 0, 4);~pa~0.base, ~pa~0.offset := #t~mem10.base, #t~mem10.offset + ~i~0 * 4;havoc #t~mem10.base, #t~mem10.offset;havoc #t~mem9.base, #t~mem9.offset;havoc #t~mem8.base, #t~mem8.offset;call #t~mem11 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {2765#false} is VALID [2018-11-14 19:10:59,383 INFO L273 TraceCheckUtils]: 36: Hoare triple {2765#false} assume #t~mem11 > 0;havoc #t~mem11;call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(#t~mem12.base, #t~mem12.offset + 0, 4);call #t~mem14 := read~int(#t~mem13.base, #t~mem13.offset + ~i~0 * 4, 4);~i~0 := #t~mem14 - 10;havoc #t~mem12.base, #t~mem12.offset;havoc #t~mem13.base, #t~mem13.offset;havoc #t~mem14; {2765#false} is VALID [2018-11-14 19:10:59,384 INFO L273 TraceCheckUtils]: 37: Hoare triple {2765#false} assume true; {2765#false} is VALID [2018-11-14 19:10:59,384 INFO L273 TraceCheckUtils]: 38: Hoare triple {2765#false} call #t~mem15 := read~int(~pa~0.base, ~pa~0.offset, 4); {2765#false} is VALID [2018-11-14 19:10:59,384 INFO L273 TraceCheckUtils]: 39: Hoare triple {2765#false} assume !(~i~0 < #t~mem15);havoc #t~mem15; {2765#false} is VALID [2018-11-14 19:10:59,384 INFO L256 TraceCheckUtils]: 40: Hoare triple {2765#false} call #t~ret17 := check(~#cont~0.base, ~#cont~0.offset, ~i~0); {2764#true} is VALID [2018-11-14 19:10:59,384 INFO L273 TraceCheckUtils]: 41: Hoare triple {2764#true} ~pc.base, ~pc.offset := #in~pc.base, #in~pc.offset;~i := #in~i;call #t~mem0.base, #t~mem0.offset := read~$Pointer$(~pc.base, ~pc.offset + 0, 4);call #t~mem1.base, #t~mem1.offset := read~$Pointer$(#t~mem0.base, #t~mem0.offset + ~i * 4, 4);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(#t~mem1.base, #t~mem1.offset + 0, 4);call #t~mem3 := read~int(#t~mem2.base, #t~mem2.offset + ~i * 4, 4);#res := (if #t~mem3 == ~i then 1 else 0);havoc #t~mem3;havoc #t~mem0.base, #t~mem0.offset;havoc #t~mem1.base, #t~mem1.offset;havoc #t~mem2.base, #t~mem2.offset; {2764#true} is VALID [2018-11-14 19:10:59,385 INFO L273 TraceCheckUtils]: 42: Hoare triple {2764#true} assume true; {2764#true} is VALID [2018-11-14 19:10:59,385 INFO L268 TraceCheckUtils]: 43: Hoare quadruple {2764#true} {2765#false} #60#return; {2765#false} is VALID [2018-11-14 19:10:59,385 INFO L273 TraceCheckUtils]: 44: Hoare triple {2765#false} assume -2147483648 <= #t~ret17 && #t~ret17 <= 2147483647; {2765#false} is VALID [2018-11-14 19:10:59,385 INFO L273 TraceCheckUtils]: 45: Hoare triple {2765#false} assume #t~ret17 == 0;havoc #t~ret17; {2765#false} is VALID [2018-11-14 19:10:59,385 INFO L273 TraceCheckUtils]: 46: Hoare triple {2765#false} assume !false; {2765#false} is VALID [2018-11-14 19:10:59,387 INFO L134 CoverageAnalysis]: Checked inductivity of 126 backedges. 0 proven. 126 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 19:10:59,387 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-14 19:10:59,387 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 10 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 10 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-14 19:10:59,396 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2018-11-14 19:11:02,788 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 10 check-sat command(s) [2018-11-14 19:11:02,789 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-14 19:11:02,810 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:11:02,812 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-14 19:11:02,914 INFO L256 TraceCheckUtils]: 0: Hoare triple {2764#true} call ULTIMATE.init(); {2764#true} is VALID [2018-11-14 19:11:02,915 INFO L273 TraceCheckUtils]: 1: Hoare triple {2764#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0]; {2764#true} is VALID [2018-11-14 19:11:02,915 INFO L273 TraceCheckUtils]: 2: Hoare triple {2764#true} assume true; {2764#true} is VALID [2018-11-14 19:11:02,915 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {2764#true} {2764#true} #62#return; {2764#true} is VALID [2018-11-14 19:11:02,916 INFO L256 TraceCheckUtils]: 4: Hoare triple {2764#true} call #t~ret18 := main(); {2764#true} is VALID [2018-11-14 19:11:02,917 INFO L273 TraceCheckUtils]: 5: Hoare triple {2764#true} call ~#cont~0.base, ~#cont~0.offset := #Ultimate.alloc(4);call ~#dummy~0.base, ~#dummy~0.offset := #Ultimate.alloc(4);call ~#dummies~0.base, ~#dummies~0.offset := #Ultimate.alloc(40);call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(40);havoc ~i~0;havoc ~pa~0.base, ~pa~0.offset;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~i~0 := #t~nondet4;havoc #t~nondet4;~j~0 := 0; {2794#(<= main_~j~0 0)} is VALID [2018-11-14 19:11:02,917 INFO L273 TraceCheckUtils]: 6: Hoare triple {2794#(<= main_~j~0 0)} assume true; {2794#(<= main_~j~0 0)} is VALID [2018-11-14 19:11:02,918 INFO L273 TraceCheckUtils]: 7: Hoare triple {2794#(<= main_~j~0 0)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2794#(<= main_~j~0 0)} is VALID [2018-11-14 19:11:02,918 INFO L273 TraceCheckUtils]: 8: Hoare triple {2794#(<= main_~j~0 0)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2767#(<= main_~j~0 1)} is VALID [2018-11-14 19:11:02,919 INFO L273 TraceCheckUtils]: 9: Hoare triple {2767#(<= main_~j~0 1)} assume true; {2767#(<= main_~j~0 1)} is VALID [2018-11-14 19:11:02,919 INFO L273 TraceCheckUtils]: 10: Hoare triple {2767#(<= main_~j~0 1)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2767#(<= main_~j~0 1)} is VALID [2018-11-14 19:11:02,920 INFO L273 TraceCheckUtils]: 11: Hoare triple {2767#(<= main_~j~0 1)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2768#(<= main_~j~0 2)} is VALID [2018-11-14 19:11:02,921 INFO L273 TraceCheckUtils]: 12: Hoare triple {2768#(<= main_~j~0 2)} assume true; {2768#(<= main_~j~0 2)} is VALID [2018-11-14 19:11:02,921 INFO L273 TraceCheckUtils]: 13: Hoare triple {2768#(<= main_~j~0 2)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2768#(<= main_~j~0 2)} is VALID [2018-11-14 19:11:02,922 INFO L273 TraceCheckUtils]: 14: Hoare triple {2768#(<= main_~j~0 2)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2769#(<= main_~j~0 3)} is VALID [2018-11-14 19:11:02,923 INFO L273 TraceCheckUtils]: 15: Hoare triple {2769#(<= main_~j~0 3)} assume true; {2769#(<= main_~j~0 3)} is VALID [2018-11-14 19:11:02,924 INFO L273 TraceCheckUtils]: 16: Hoare triple {2769#(<= main_~j~0 3)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2769#(<= main_~j~0 3)} is VALID [2018-11-14 19:11:02,925 INFO L273 TraceCheckUtils]: 17: Hoare triple {2769#(<= main_~j~0 3)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2770#(<= main_~j~0 4)} is VALID [2018-11-14 19:11:02,925 INFO L273 TraceCheckUtils]: 18: Hoare triple {2770#(<= main_~j~0 4)} assume true; {2770#(<= main_~j~0 4)} is VALID [2018-11-14 19:11:02,926 INFO L273 TraceCheckUtils]: 19: Hoare triple {2770#(<= main_~j~0 4)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2770#(<= main_~j~0 4)} is VALID [2018-11-14 19:11:02,927 INFO L273 TraceCheckUtils]: 20: Hoare triple {2770#(<= main_~j~0 4)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2771#(<= main_~j~0 5)} is VALID [2018-11-14 19:11:02,927 INFO L273 TraceCheckUtils]: 21: Hoare triple {2771#(<= main_~j~0 5)} assume true; {2771#(<= main_~j~0 5)} is VALID [2018-11-14 19:11:02,928 INFO L273 TraceCheckUtils]: 22: Hoare triple {2771#(<= main_~j~0 5)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2771#(<= main_~j~0 5)} is VALID [2018-11-14 19:11:02,929 INFO L273 TraceCheckUtils]: 23: Hoare triple {2771#(<= main_~j~0 5)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2772#(<= main_~j~0 6)} is VALID [2018-11-14 19:11:02,929 INFO L273 TraceCheckUtils]: 24: Hoare triple {2772#(<= main_~j~0 6)} assume true; {2772#(<= main_~j~0 6)} is VALID [2018-11-14 19:11:02,930 INFO L273 TraceCheckUtils]: 25: Hoare triple {2772#(<= main_~j~0 6)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2772#(<= main_~j~0 6)} is VALID [2018-11-14 19:11:02,930 INFO L273 TraceCheckUtils]: 26: Hoare triple {2772#(<= main_~j~0 6)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2773#(<= main_~j~0 7)} is VALID [2018-11-14 19:11:02,931 INFO L273 TraceCheckUtils]: 27: Hoare triple {2773#(<= main_~j~0 7)} assume true; {2773#(<= main_~j~0 7)} is VALID [2018-11-14 19:11:02,931 INFO L273 TraceCheckUtils]: 28: Hoare triple {2773#(<= main_~j~0 7)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2773#(<= main_~j~0 7)} is VALID [2018-11-14 19:11:02,932 INFO L273 TraceCheckUtils]: 29: Hoare triple {2773#(<= main_~j~0 7)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2774#(<= main_~j~0 8)} is VALID [2018-11-14 19:11:02,933 INFO L273 TraceCheckUtils]: 30: Hoare triple {2774#(<= main_~j~0 8)} assume true; {2774#(<= main_~j~0 8)} is VALID [2018-11-14 19:11:02,933 INFO L273 TraceCheckUtils]: 31: Hoare triple {2774#(<= main_~j~0 8)} assume !!(~j~0 < 10);assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;call write~int(#t~nondet6, ~#a~0.base, ~#a~0.offset + ~j~0 * 4, 4);havoc #t~nondet6;call write~$Pointer$(#t~nondet7.base, #t~nondet7.offset, ~#dummies~0.base, ~#dummies~0.offset + ~j~0 * 4, 4);havoc #t~nondet7.base, #t~nondet7.offset; {2774#(<= main_~j~0 8)} is VALID [2018-11-14 19:11:02,934 INFO L273 TraceCheckUtils]: 32: Hoare triple {2774#(<= main_~j~0 8)} #t~post5 := ~j~0;~j~0 := #t~post5 + 1;havoc #t~post5; {2775#(<= main_~j~0 9)} is VALID [2018-11-14 19:11:02,934 INFO L273 TraceCheckUtils]: 33: Hoare triple {2775#(<= main_~j~0 9)} assume true; {2775#(<= main_~j~0 9)} is VALID [2018-11-14 19:11:02,935 INFO L273 TraceCheckUtils]: 34: Hoare triple {2775#(<= main_~j~0 9)} assume !(~j~0 < 10); {2765#false} is VALID [2018-11-14 19:11:02,935 INFO L273 TraceCheckUtils]: 35: Hoare triple {2765#false} assume ~i~0 >= 0 && ~i~0 < 9;call write~int(~i~0, ~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4);call write~$Pointer$(~#a~0.base, ~#a~0.offset + ~i~0 * 4, ~#dummy~0.base, ~#dummy~0.offset + 0, 4);call write~$Pointer$(~#dummy~0.base, ~#dummy~0.offset, ~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call write~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + 0, ~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem8.base, #t~mem8.offset := read~$Pointer$(~#cont~0.base, ~#cont~0.offset + 0, 4);call #t~mem9.base, #t~mem9.offset := read~$Pointer$(#t~mem8.base, #t~mem8.offset + ~i~0 * 4, 4);call #t~mem10.base, #t~mem10.offset := read~$Pointer$(#t~mem9.base, #t~mem9.offset + 0, 4);~pa~0.base, ~pa~0.offset := #t~mem10.base, #t~mem10.offset + ~i~0 * 4;havoc #t~mem10.base, #t~mem10.offset;havoc #t~mem9.base, #t~mem9.offset;havoc #t~mem8.base, #t~mem8.offset;call #t~mem11 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {2765#false} is VALID [2018-11-14 19:11:02,935 INFO L273 TraceCheckUtils]: 36: Hoare triple {2765#false} assume #t~mem11 > 0;havoc #t~mem11;call #t~mem12.base, #t~mem12.offset := read~$Pointer$(~#dummies~0.base, ~#dummies~0.offset + (~i~0 + 1) * 4, 4);call #t~mem13.base, #t~mem13.offset := read~$Pointer$(#t~mem12.base, #t~mem12.offset + 0, 4);call #t~mem14 := read~int(#t~mem13.base, #t~mem13.offset + ~i~0 * 4, 4);~i~0 := #t~mem14 - 10;havoc #t~mem12.base, #t~mem12.offset;havoc #t~mem13.base, #t~mem13.offset;havoc #t~mem14; {2765#false} is VALID [2018-11-14 19:11:02,936 INFO L273 TraceCheckUtils]: 37: Hoare triple {2765#false} assume true; {2765#false} is VALID [2018-11-14 19:11:02,936 INFO L273 TraceCheckUtils]: 38: Hoare triple {2765#false} call #t~mem15 := read~int(~pa~0.base, ~pa~0.offset, 4); {2765#false} is VALID [2018-11-14 19:11:02,936 INFO L273 TraceCheckUtils]: 39: Hoare triple {2765#false} assume !(~i~0 < #t~mem15);havoc #t~mem15; {2765#false} is VALID [2018-11-14 19:11:02,936 INFO L256 TraceCheckUtils]: 40: Hoare triple {2765#false} call #t~ret17 := check(~#cont~0.base, ~#cont~0.offset, ~i~0); {2765#false} is VALID [2018-11-14 19:11:02,937 INFO L273 TraceCheckUtils]: 41: Hoare triple {2765#false} ~pc.base, ~pc.offset := #in~pc.base, #in~pc.offset;~i := #in~i;call #t~mem0.base, #t~mem0.offset := read~$Pointer$(~pc.base, ~pc.offset + 0, 4);call #t~mem1.base, #t~mem1.offset := read~$Pointer$(#t~mem0.base, #t~mem0.offset + ~i * 4, 4);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(#t~mem1.base, #t~mem1.offset + 0, 4);call #t~mem3 := read~int(#t~mem2.base, #t~mem2.offset + ~i * 4, 4);#res := (if #t~mem3 == ~i then 1 else 0);havoc #t~mem3;havoc #t~mem0.base, #t~mem0.offset;havoc #t~mem1.base, #t~mem1.offset;havoc #t~mem2.base, #t~mem2.offset; {2765#false} is VALID [2018-11-14 19:11:02,937 INFO L273 TraceCheckUtils]: 42: Hoare triple {2765#false} assume true; {2765#false} is VALID [2018-11-14 19:11:02,937 INFO L268 TraceCheckUtils]: 43: Hoare quadruple {2765#false} {2765#false} #60#return; {2765#false} is VALID [2018-11-14 19:11:02,938 INFO L273 TraceCheckUtils]: 44: Hoare triple {2765#false} assume -2147483648 <= #t~ret17 && #t~ret17 <= 2147483647; {2765#false} is VALID [2018-11-14 19:11:02,938 INFO L273 TraceCheckUtils]: 45: Hoare triple {2765#false} assume #t~ret17 == 0;havoc #t~ret17; {2765#false} is VALID [2018-11-14 19:11:02,938 INFO L273 TraceCheckUtils]: 46: Hoare triple {2765#false} assume !false; {2765#false} is VALID [2018-11-14 19:11:02,940 INFO L134 CoverageAnalysis]: Checked inductivity of 126 backedges. 0 proven. 126 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 19:11:02,968 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-14 19:11:02,969 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 12] total 13 [2018-11-14 19:11:02,969 INFO L78 Accepts]: Start accepts. Automaton has 13 states. Word has length 47 [2018-11-14 19:11:02,969 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 19:11:02,970 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 13 states. [2018-11-14 19:11:03,031 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 55 edges. 55 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:11:03,031 INFO L459 AbstractCegarLoop]: Interpolant automaton has 13 states [2018-11-14 19:11:03,031 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2018-11-14 19:11:03,031 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=78, Invalid=78, Unknown=0, NotChecked=0, Total=156 [2018-11-14 19:11:03,032 INFO L87 Difference]: Start difference. First operand 48 states and 49 transitions. Second operand 13 states. [2018-11-14 19:11:03,288 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:11:03,289 INFO L93 Difference]: Finished difference Result 64 states and 66 transitions. [2018-11-14 19:11:03,289 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 12 states. [2018-11-14 19:11:03,289 INFO L78 Accepts]: Start accepts. Automaton has 13 states. Word has length 47 [2018-11-14 19:11:03,289 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 19:11:03,289 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2018-11-14 19:11:03,291 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 66 transitions. [2018-11-14 19:11:03,291 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2018-11-14 19:11:03,293 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 66 transitions. [2018-11-14 19:11:03,293 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states and 66 transitions. [2018-11-14 19:11:03,416 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 66 edges. 66 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:11:03,417 INFO L225 Difference]: With dead ends: 64 [2018-11-14 19:11:03,418 INFO L226 Difference]: Without dead ends: 51 [2018-11-14 19:11:03,418 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 58 GetRequests, 47 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 16 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=78, Invalid=78, Unknown=0, NotChecked=0, Total=156 [2018-11-14 19:11:03,419 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 51 states. [2018-11-14 19:11:03,471 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 51 to 51. [2018-11-14 19:11:03,471 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 19:11:03,471 INFO L82 GeneralOperation]: Start isEquivalent. First operand 51 states. Second operand 51 states. [2018-11-14 19:11:03,471 INFO L74 IsIncluded]: Start isIncluded. First operand 51 states. Second operand 51 states. [2018-11-14 19:11:03,471 INFO L87 Difference]: Start difference. First operand 51 states. Second operand 51 states. [2018-11-14 19:11:03,472 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:11:03,472 INFO L93 Difference]: Finished difference Result 51 states and 52 transitions. [2018-11-14 19:11:03,473 INFO L276 IsEmpty]: Start isEmpty. Operand 51 states and 52 transitions. [2018-11-14 19:11:03,473 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:11:03,473 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:11:03,473 INFO L74 IsIncluded]: Start isIncluded. First operand 51 states. Second operand 51 states. [2018-11-14 19:11:03,473 INFO L87 Difference]: Start difference. First operand 51 states. Second operand 51 states. [2018-11-14 19:11:03,475 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:11:03,475 INFO L93 Difference]: Finished difference Result 51 states and 52 transitions. [2018-11-14 19:11:03,475 INFO L276 IsEmpty]: Start isEmpty. Operand 51 states and 52 transitions. [2018-11-14 19:11:03,475 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:11:03,475 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:11:03,475 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 19:11:03,475 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 19:11:03,476 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 51 states. [2018-11-14 19:11:03,477 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 51 states to 51 states and 52 transitions. [2018-11-14 19:11:03,477 INFO L78 Accepts]: Start accepts. Automaton has 51 states and 52 transitions. Word has length 47 [2018-11-14 19:11:03,477 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 19:11:03,477 INFO L480 AbstractCegarLoop]: Abstraction has 51 states and 52 transitions. [2018-11-14 19:11:03,477 INFO L481 AbstractCegarLoop]: Interpolant automaton has 13 states. [2018-11-14 19:11:03,477 INFO L276 IsEmpty]: Start isEmpty. Operand 51 states and 52 transitions. [2018-11-14 19:11:03,478 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 51 [2018-11-14 19:11:03,478 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:11:03,478 INFO L375 BasicCegarLoop]: trace histogram [11, 10, 10, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 19:11:03,478 INFO L423 AbstractCegarLoop]: === Iteration 12 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:11:03,478 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:11:03,479 INFO L82 PathProgramCache]: Analyzing trace with hash 732723291, now seen corresponding path program 10 times [2018-11-14 19:11:03,479 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:11:03,479 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:11:03,480 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:11:03,480 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-14 19:11:03,480 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:11:03,635 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-14 19:11:03,763 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-14 19:11:03,805 INFO L442 BasicCegarLoop]: Counterexample might be feasible [2018-11-14 19:11:03,871 WARN L170 areAnnotationChecker]: ULTIMATE.initENTRY has no Hoare annotation [2018-11-14 19:11:03,871 WARN L170 areAnnotationChecker]: ULTIMATE.startENTRY has no Hoare annotation [2018-11-14 19:11:03,871 WARN L170 areAnnotationChecker]: ULTIMATE.startENTRY has no Hoare annotation [2018-11-14 19:11:03,872 WARN L170 areAnnotationChecker]: mainENTRY has no Hoare annotation [2018-11-14 19:11:03,872 WARN L170 areAnnotationChecker]: checkENTRY has no Hoare annotation [2018-11-14 19:11:03,872 WARN L170 areAnnotationChecker]: ULTIMATE.initFINAL has no Hoare annotation [2018-11-14 19:11:03,872 WARN L170 areAnnotationChecker]: L-1 has no Hoare annotation [2018-11-14 19:11:03,872 WARN L170 areAnnotationChecker]: L-1 has no Hoare annotation [2018-11-14 19:11:03,872 WARN L170 areAnnotationChecker]: L28-4 has no Hoare annotation [2018-11-14 19:11:03,872 WARN L170 areAnnotationChecker]: L28-4 has no Hoare annotation [2018-11-14 19:11:03,872 WARN L170 areAnnotationChecker]: checkFINAL has no Hoare annotation [2018-11-14 19:11:03,872 WARN L170 areAnnotationChecker]: ULTIMATE.initEXIT has no Hoare annotation [2018-11-14 19:11:03,872 WARN L170 areAnnotationChecker]: ULTIMATE.startFINAL has no Hoare annotation [2018-11-14 19:11:03,872 WARN L170 areAnnotationChecker]: L28-1 has no Hoare annotation [2018-11-14 19:11:03,872 WARN L170 areAnnotationChecker]: L28-1 has no Hoare annotation [2018-11-14 19:11:03,872 WARN L170 areAnnotationChecker]: L28-5 has no Hoare annotation [2018-11-14 19:11:03,872 WARN L170 areAnnotationChecker]: L28-5 has no Hoare annotation [2018-11-14 19:11:03,873 WARN L170 areAnnotationChecker]: checkEXIT has no Hoare annotation [2018-11-14 19:11:03,873 WARN L170 areAnnotationChecker]: L28-3 has no Hoare annotation [2018-11-14 19:11:03,873 WARN L170 areAnnotationChecker]: L38 has no Hoare annotation [2018-11-14 19:11:03,873 WARN L170 areAnnotationChecker]: L38 has no Hoare annotation [2018-11-14 19:11:03,873 WARN L170 areAnnotationChecker]: L32 has no Hoare annotation [2018-11-14 19:11:03,873 WARN L170 areAnnotationChecker]: L43 has no Hoare annotation [2018-11-14 19:11:03,873 WARN L170 areAnnotationChecker]: L40-4 has no Hoare annotation [2018-11-14 19:11:03,873 WARN L170 areAnnotationChecker]: L40-4 has no Hoare annotation [2018-11-14 19:11:03,873 WARN L170 areAnnotationChecker]: mainFINAL has no Hoare annotation [2018-11-14 19:11:03,873 WARN L170 areAnnotationChecker]: L43-1 has no Hoare annotation [2018-11-14 19:11:03,873 WARN L170 areAnnotationChecker]: L43-1 has no Hoare annotation [2018-11-14 19:11:03,874 WARN L170 areAnnotationChecker]: L40-1 has no Hoare annotation [2018-11-14 19:11:03,874 WARN L170 areAnnotationChecker]: L40-5 has no Hoare annotation [2018-11-14 19:11:03,874 WARN L170 areAnnotationChecker]: L40-5 has no Hoare annotation [2018-11-14 19:11:03,874 WARN L170 areAnnotationChecker]: mainEXIT has no Hoare annotation [2018-11-14 19:11:03,874 WARN L170 areAnnotationChecker]: L44 has no Hoare annotation [2018-11-14 19:11:03,874 WARN L170 areAnnotationChecker]: L44 has no Hoare annotation [2018-11-14 19:11:03,874 WARN L170 areAnnotationChecker]: L40-2 has no Hoare annotation [2018-11-14 19:11:03,874 WARN L170 areAnnotationChecker]: L40-2 has no Hoare annotation [2018-11-14 19:11:03,874 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:11:03,877 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction CFG 14.11 07:11:03 BoogieIcfgContainer [2018-11-14 19:11:03,877 INFO L132 PluginConnector]: ------------------------ END TraceAbstraction---------------------------- [2018-11-14 19:11:03,878 INFO L168 Benchmark]: Toolchain (without parser) took 19812.27 ms. Allocated memory was 1.5 GB in the beginning and 2.4 GB in the end (delta: 866.1 MB). Free memory was 1.4 GB in the beginning and 1.8 GB in the end (delta: -363.3 MB). Peak memory consumption was 502.8 MB. Max. memory is 7.1 GB. [2018-11-14 19:11:03,880 INFO L168 Benchmark]: CDTParser took 0.29 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:11:03,880 INFO L168 Benchmark]: CACSL2BoogieTranslator took 421.32 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:11:03,881 INFO L168 Benchmark]: Boogie Preprocessor took 69.34 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:11:03,881 INFO L168 Benchmark]: RCFGBuilder took 1127.36 ms. Allocated memory was 1.5 GB in the beginning and 2.3 GB in the end (delta: 730.9 MB). Free memory was 1.4 GB in the beginning and 2.1 GB in the end (delta: -736.5 MB). Peak memory consumption was 15.1 MB. Max. memory is 7.1 GB. [2018-11-14 19:11:03,882 INFO L168 Benchmark]: TraceAbstraction took 18188.14 ms. Allocated memory was 2.3 GB in the beginning and 2.4 GB in the end (delta: 135.3 MB). Free memory was 2.1 GB in the beginning and 1.8 GB in the end (delta: 348.1 MB). Peak memory consumption was 483.3 MB. Max. memory is 7.1 GB. [2018-11-14 19:11:03,885 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.29 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 421.32 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 69.34 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 1127.36 ms. Allocated memory was 1.5 GB in the beginning and 2.3 GB in the end (delta: 730.9 MB). Free memory was 1.4 GB in the beginning and 2.1 GB in the end (delta: -736.5 MB). Peak memory consumption was 15.1 MB. Max. memory is 7.1 GB. * TraceAbstraction took 18188.14 ms. Allocated memory was 2.3 GB in the beginning and 2.4 GB in the end (delta: 135.3 MB). Free memory was 2.1 GB in the beginning and 1.8 GB in the end (delta: 348.1 MB). Peak memory consumption was 483.3 MB. Max. memory is 7.1 GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - CounterExampleResult [Line: 51]: a call of __VERIFIER_error() is reachable a call of __VERIFIER_error() is reachable We found a FailurePath: [L22] FCALL struct cont cont; [L23] FCALL struct dummy dummy; [L24] FCALL struct dummy *dummies[10]; [L25] FCALL int a[10]; [L26] int i, *pa; [L27] i = __VERIFIER_nondet_int() [L28] int j = 0; VAL [a={61:0}, cont={56:0}, dummies={69:0}, dummy={44:0}, i=1, j=0] [L28] COND TRUE j < 10 [L29] FCALL a[j] = __VERIFIER_nondet_int() [L30] FCALL dummies[j] = __VERIFIER_nondet_pointer() [L28] j++ VAL [a={61:0}, cont={56:0}, dummies={69:0}, dummy={44:0}, i=1, j=1] [L28] COND TRUE j < 10 [L29] FCALL a[j] = __VERIFIER_nondet_int() [L30] FCALL dummies[j] = __VERIFIER_nondet_pointer() [L28] j++ VAL [a={61:0}, cont={56:0}, dummies={69:0}, dummy={44:0}, i=1, j=2] [L28] COND TRUE j < 10 [L29] FCALL a[j] = __VERIFIER_nondet_int() [L30] FCALL dummies[j] = __VERIFIER_nondet_pointer() [L28] j++ VAL [a={61:0}, cont={56:0}, dummies={69:0}, dummy={44:0}, i=1, j=3] [L28] COND TRUE j < 10 [L29] FCALL a[j] = __VERIFIER_nondet_int() [L30] FCALL dummies[j] = __VERIFIER_nondet_pointer() [L28] j++ VAL [a={61:0}, cont={56:0}, dummies={69:0}, dummy={44:0}, i=1, j=4] [L28] COND TRUE j < 10 [L29] FCALL a[j] = __VERIFIER_nondet_int() [L30] FCALL dummies[j] = __VERIFIER_nondet_pointer() [L28] j++ VAL [a={61:0}, cont={56:0}, dummies={69:0}, dummy={44:0}, i=1, j=5] [L28] COND TRUE j < 10 [L29] FCALL a[j] = __VERIFIER_nondet_int() [L30] FCALL dummies[j] = __VERIFIER_nondet_pointer() [L28] j++ VAL [a={61:0}, cont={56:0}, dummies={69:0}, dummy={44:0}, i=1, j=6] [L28] COND TRUE j < 10 [L29] FCALL a[j] = __VERIFIER_nondet_int() [L30] FCALL dummies[j] = __VERIFIER_nondet_pointer() [L28] j++ VAL [a={61:0}, cont={56:0}, dummies={69:0}, dummy={44:0}, i=1, j=7] [L28] COND TRUE j < 10 [L29] FCALL a[j] = __VERIFIER_nondet_int() [L30] FCALL dummies[j] = __VERIFIER_nondet_pointer() [L28] j++ VAL [a={61:0}, cont={56:0}, dummies={69:0}, dummy={44:0}, i=1, j=8] [L28] COND TRUE j < 10 [L29] FCALL a[j] = __VERIFIER_nondet_int() [L30] FCALL dummies[j] = __VERIFIER_nondet_pointer() [L28] j++ VAL [a={61:0}, cont={56:0}, dummies={69:0}, dummy={44:0}, i=1, j=9] [L28] COND TRUE j < 10 [L29] FCALL a[j] = __VERIFIER_nondet_int() [L30] FCALL dummies[j] = __VERIFIER_nondet_pointer() [L28] j++ VAL [a={61:0}, cont={56:0}, dummies={69:0}, dummy={44:0}, i=1, j=10] [L28] COND FALSE !(j < 10) VAL [a={61:0}, cont={56:0}, dummies={69:0}, dummy={44:0}, i=1, j=10] [L32] COND TRUE i >= 0 && i < 9 [L33] FCALL a[i] = i [L34] FCALL dummy.array = &a[i] [L35] FCALL dummies[i + 1] = &dummy [L36] FCALL cont.array = &dummies[0] [L37] EXPR, FCALL cont.array [L37] EXPR, FCALL cont.array[i] [L37] EXPR, FCALL cont.array[i]->array [L37] pa = &cont.array[i]->array[i] [L38] EXPR, FCALL a[i] VAL [a={61:0}, a[i]=1, cont={56:0}, dummies={69:0}, dummy={44:0}, i=1, j=10, pa={64:0}] [L38] COND TRUE a[i] > 0 [L39] EXPR, FCALL dummies[i + 1] [L39] EXPR, FCALL dummies[i + 1]->array [L39] EXPR, FCALL dummies[i + 1]->array[i] [L39] i = dummies[i + 1]->array[i] - 10 [L40] EXPR, FCALL \read(*pa) VAL [\read(*pa)=0, a={61:0}, cont={56:0}, dummies={69:0}, dummy={44:0}, i=0, j=10, pa={64:0}] [L40] COND FALSE !(i < *pa) [L43] CALL, EXPR check(&cont, i) VAL [\old(i)=0, pc={56:0}] [L17] EXPR, FCALL pc->array [L17] EXPR, FCALL pc->array[i] [L17] EXPR, FCALL pc->array[i]->array [L17] EXPR, FCALL pc->array[i]->array[i] [L17] RET return pc->array[i]->array[i] == i; [L43] EXPR check(&cont, i) VAL [a={61:0}, check(&cont, i)=0, cont={56:0}, dummies={69:0}, dummy={44:0}, i=0, j=10, pa={64:0}] [L43] COND TRUE !check(&cont, i) [L51] __VERIFIER_error() VAL [a={61:0}, cont={56:0}, dummies={69:0}, dummy={44:0}, i=0, j=10, pa={64:0}] - StatisticsResult: Ultimate Automizer benchmark data CFG has 4 procedures, 27 locations, 1 error locations. UNSAFE Result, 18.1s OverallTime, 12 OverallIterations, 11 TraceHistogramMax, 4.6s AutomataDifference, 0.0s DeadEndRemovalTime, 0.0s HoareAnnotationTime, HoareTripleCheckerStatistics: 240 SDtfs, 55 SDslu, 1013 SDs, 0 SdLazy, 190 SolverSat, 11 SolverUnsat, 0 SolverUnknown, 0 SolverNotchecked, 0.3s Time, PredicateUnifierStatistics: 0 DeclaredPredicates, 383 GetRequests, 319 SyntacticMatches, 0 SemanticMatches, 64 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 72 ImplicationChecksByTransitivity, 1.1s Time, 0.0s BasicInterpolantAutomatonTime, BiggestAbstraction: size=51occurred in iteration=11, traceCheckStatistics: No data available, InterpolantConsolidationStatistics: No data available, PathInvariantsStatistics: No data available, 0/0 InterpolantCoveringCapability, TotalInterpolationStatistics: No data available, 0.0s AbstIntTime, 0 AbstIntIterations, 0 AbstIntStrong, NaN AbsIntWeakeningRatio, NaN AbsIntAvgWeakeningVarsNumRemoved, NaN AbsIntAvgWeakenedConjuncts, 0.0s DumpTime, AutomataMinimizationStatistics: 0.4s AutomataMinimizationTime, 11 MinimizatonAttempts, 9 StatesRemovedByMinimization, 9 NontrivialMinimizations, HoareAnnotationStatistics: No data available, RefinementEngineStatistics: TraceCheckStatistics: 0.1s SsaConstructionTime, 5.6s SatisfiabilityAnalysisTime, 5.3s InterpolantComputationTime, 717 NumberOfCodeBlocks, 717 NumberOfCodeBlocksAsserted, 47 NumberOfCheckSat, 647 ConstructedInterpolants, 0 QuantifiedInterpolants, 45549 SizeOfPredicates, 9 NumberOfNonLiveVariables, 1332 ConjunctsInSsa, 63 ConjunctsInUnsatCore, 20 InterpolantComputations, 2 PerfectInterpolantSequences, 0/900 InterpolantCoveringCapability, InvariantSynthesisStatistics: No data available, InterpolantConsolidationStatistics: No data available, ReuseStatistics: No data available RESULT: Ultimate proved your program to be incorrect! Received shutdown request...