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/test23_false-unreach-call.c -------------------------------------------------------------------------------- This is Ultimate 0.1.23-370d6ab [2018-11-14 19:10:39,764 INFO L170 SettingsManager]: Resetting all preferences to default values... [2018-11-14 19:10:39,766 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2018-11-14 19:10:39,780 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2018-11-14 19:10:39,780 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2018-11-14 19:10:39,781 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2018-11-14 19:10:39,783 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2018-11-14 19:10:39,785 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2018-11-14 19:10:39,786 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2018-11-14 19:10:39,787 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2018-11-14 19:10:39,791 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2018-11-14 19:10:39,791 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2018-11-14 19:10:39,795 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2018-11-14 19:10:39,796 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2018-11-14 19:10:39,800 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2018-11-14 19:10:39,801 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2018-11-14 19:10:39,802 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2018-11-14 19:10:39,803 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2018-11-14 19:10:39,805 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2018-11-14 19:10:39,807 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2018-11-14 19:10:39,808 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2018-11-14 19:10:39,809 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2018-11-14 19:10:39,811 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2018-11-14 19:10:39,812 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2018-11-14 19:10:39,812 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2018-11-14 19:10:39,813 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2018-11-14 19:10:39,814 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2018-11-14 19:10:39,815 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2018-11-14 19:10:39,815 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2018-11-14 19:10:39,816 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2018-11-14 19:10:39,817 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2018-11-14 19:10:39,817 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2018-11-14 19:10:39,818 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2018-11-14 19:10:39,818 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2018-11-14 19:10:39,819 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2018-11-14 19:10:39,819 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2018-11-14 19:10:39,820 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:39,835 INFO L110 SettingsManager]: Loading preferences was successful [2018-11-14 19:10:39,835 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2018-11-14 19:10:39,836 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2018-11-14 19:10:39,836 INFO L133 SettingsManager]: * to procedures, called more than once=true [2018-11-14 19:10:39,837 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2018-11-14 19:10:39,837 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2018-11-14 19:10:39,837 INFO L133 SettingsManager]: * Use SBE=true [2018-11-14 19:10:39,837 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2018-11-14 19:10:39,837 INFO L133 SettingsManager]: * sizeof long=4 [2018-11-14 19:10:39,838 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2018-11-14 19:10:39,838 INFO L133 SettingsManager]: * sizeof POINTER=4 [2018-11-14 19:10:39,838 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2018-11-14 19:10:39,838 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2018-11-14 19:10:39,838 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2018-11-14 19:10:39,839 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2018-11-14 19:10:39,839 INFO L133 SettingsManager]: * sizeof long double=12 [2018-11-14 19:10:39,839 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2018-11-14 19:10:39,839 INFO L133 SettingsManager]: * Use constant arrays=true [2018-11-14 19:10:39,839 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2018-11-14 19:10:39,840 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2018-11-14 19:10:39,840 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2018-11-14 19:10:39,840 INFO L133 SettingsManager]: * To the following directory=./dump/ [2018-11-14 19:10:39,840 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2018-11-14 19:10:39,840 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-14 19:10:39,841 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2018-11-14 19:10:39,841 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2018-11-14 19:10:39,841 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2018-11-14 19:10:39,841 INFO L133 SettingsManager]: * Trace refinement strategy=CAMEL [2018-11-14 19:10:39,841 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2018-11-14 19:10:39,842 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2018-11-14 19:10:39,842 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2018-11-14 19:10:39,890 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2018-11-14 19:10:39,908 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2018-11-14 19:10:39,912 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2018-11-14 19:10:39,915 INFO L271 PluginConnector]: Initializing CDTParser... [2018-11-14 19:10:39,915 INFO L276 PluginConnector]: CDTParser initialized [2018-11-14 19:10:39,916 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/svcomp/ldv-regression/test23_false-unreach-call.c [2018-11-14 19:10:39,980 INFO L218 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/df65e03d6/369bcde406bc42c198b32c1621054aba/FLAG23349eb86 [2018-11-14 19:10:40,405 INFO L298 CDTParser]: Found 1 translation units. [2018-11-14 19:10:40,406 INFO L158 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/ldv-regression/test23_false-unreach-call.c [2018-11-14 19:10:40,413 INFO L346 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/df65e03d6/369bcde406bc42c198b32c1621054aba/FLAG23349eb86 [2018-11-14 19:10:40,432 INFO L354 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/df65e03d6/369bcde406bc42c198b32c1621054aba [2018-11-14 19:10:40,447 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2018-11-14 19:10:40,449 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2018-11-14 19:10:40,450 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2018-11-14 19:10:40,450 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2018-11-14 19:10:40,455 INFO L276 PluginConnector]: CACSL2BoogieTranslator initialized [2018-11-14 19:10:40,457 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 14.11 07:10:40" (1/1) ... [2018-11-14 19:10:40,460 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@1fb53f2e and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 07:10:40, skipping insertion in model container [2018-11-14 19:10:40,461 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 14.11 07:10:40" (1/1) ... [2018-11-14 19:10:40,472 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2018-11-14 19:10:40,498 INFO L176 MainTranslator]: Built tables and reachable declarations [2018-11-14 19:10:40,789 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-14 19:10:40,811 INFO L191 MainTranslator]: Completed pre-run [2018-11-14 19:10:40,847 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-14 19:10:40,880 INFO L195 MainTranslator]: Completed translation [2018-11-14 19:10:40,881 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 07:10:40 WrapperNode [2018-11-14 19:10:40,881 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2018-11-14 19:10:40,882 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2018-11-14 19:10:40,882 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2018-11-14 19:10:40,882 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2018-11-14 19:10:40,899 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:40" (1/1) ... [2018-11-14 19:10:40,900 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:40" (1/1) ... [2018-11-14 19:10:40,913 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:40" (1/1) ... [2018-11-14 19:10:40,913 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:40" (1/1) ... [2018-11-14 19:10:40,937 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:40" (1/1) ... [2018-11-14 19:10:40,944 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:40" (1/1) ... [2018-11-14 19:10:40,949 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:40" (1/1) ... [2018-11-14 19:10:40,954 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2018-11-14 19:10:40,955 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2018-11-14 19:10:40,955 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2018-11-14 19:10:40,955 INFO L276 PluginConnector]: RCFGBuilder initialized [2018-11-14 19:10:40,956 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 07:10:40" (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:41,124 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2018-11-14 19:10:41,124 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2018-11-14 19:10:41,125 INFO L138 BoogieDeclarations]: Found implementation of procedure init [2018-11-14 19:10:41,125 INFO L138 BoogieDeclarations]: Found implementation of procedure get_dummy [2018-11-14 19:10:41,125 INFO L138 BoogieDeclarations]: Found implementation of procedure check [2018-11-14 19:10:41,125 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2018-11-14 19:10:41,125 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_error [2018-11-14 19:10:41,126 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_nondet_int [2018-11-14 19:10:41,126 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_nondet_bool [2018-11-14 19:10:41,126 INFO L130 BoogieDeclarations]: Found specification of procedure init [2018-11-14 19:10:41,126 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2018-11-14 19:10:41,126 INFO L130 BoogieDeclarations]: Found specification of procedure get_dummy [2018-11-14 19:10:41,126 INFO L130 BoogieDeclarations]: Found specification of procedure check [2018-11-14 19:10:41,127 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2018-11-14 19:10:41,127 INFO L130 BoogieDeclarations]: Found specification of procedure main [2018-11-14 19:10:41,127 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2018-11-14 19:10:41,127 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.alloc [2018-11-14 19:10:41,127 INFO L130 BoogieDeclarations]: Found specification of procedure write~unchecked~int [2018-11-14 19:10:41,128 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2018-11-14 19:10:41,128 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2018-11-14 19:10:41,911 INFO L278 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2018-11-14 19:10:41,912 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 14.11 07:10:41 BoogieIcfgContainer [2018-11-14 19:10:41,912 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2018-11-14 19:10:41,913 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2018-11-14 19:10:41,913 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2018-11-14 19:10:41,916 INFO L276 PluginConnector]: TraceAbstraction initialized [2018-11-14 19:10:41,917 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 14.11 07:10:40" (1/3) ... [2018-11-14 19:10:41,917 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@4a33e8de and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 14.11 07:10:41, skipping insertion in model container [2018-11-14 19:10:41,918 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 07:10:40" (2/3) ... [2018-11-14 19:10:41,918 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@4a33e8de and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 14.11 07:10:41, skipping insertion in model container [2018-11-14 19:10:41,918 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 14.11 07:10:41" (3/3) ... [2018-11-14 19:10:41,920 INFO L112 eAbstractionObserver]: Analyzing ICFG test23_false-unreach-call.c [2018-11-14 19:10:41,930 INFO L136 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2018-11-14 19:10:41,938 INFO L148 ceAbstractionStarter]: Appying trace abstraction to program that has 1 error locations. [2018-11-14 19:10:41,956 INFO L257 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2018-11-14 19:10:41,990 INFO L133 ementStrategyFactory]: Using default assertion order modulation [2018-11-14 19:10:41,991 INFO L382 AbstractCegarLoop]: Interprodecural is true [2018-11-14 19:10:41,991 INFO L383 AbstractCegarLoop]: Hoare is true [2018-11-14 19:10:41,991 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2018-11-14 19:10:41,991 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2018-11-14 19:10:41,992 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2018-11-14 19:10:41,992 INFO L387 AbstractCegarLoop]: Difference is false [2018-11-14 19:10:41,992 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2018-11-14 19:10:41,993 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2018-11-14 19:10:42,011 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states. [2018-11-14 19:10:42,018 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 31 [2018-11-14 19:10:42,019 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:10:42,020 INFO L375 BasicCegarLoop]: trace histogram [2, 2, 2, 1, 1, 1, 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:42,022 INFO L423 AbstractCegarLoop]: === Iteration 1 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:10:42,028 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:10:42,028 INFO L82 PathProgramCache]: Analyzing trace with hash -1786553997, now seen corresponding path program 1 times [2018-11-14 19:10:42,030 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:10:42,030 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:10:42,080 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:42,081 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 19:10:42,081 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:42,156 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:42,248 INFO L256 TraceCheckUtils]: 0: Hoare triple {37#true} call ULTIMATE.init(); {37#true} is VALID [2018-11-14 19:10:42,252 INFO L273 TraceCheckUtils]: 1: Hoare triple {37#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];call ~#d1~0.base, ~#d1~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base); {37#true} is VALID [2018-11-14 19:10:42,253 INFO L273 TraceCheckUtils]: 2: Hoare triple {37#true} assume true; {37#true} is VALID [2018-11-14 19:10:42,253 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {37#true} {37#true} #62#return; {37#true} is VALID [2018-11-14 19:10:42,254 INFO L256 TraceCheckUtils]: 4: Hoare triple {37#true} call #t~ret14 := main(); {37#true} is VALID [2018-11-14 19:10:42,254 INFO L256 TraceCheckUtils]: 5: Hoare triple {37#true} call init(); {37#true} is VALID [2018-11-14 19:10:42,254 INFO L273 TraceCheckUtils]: 6: Hoare triple {37#true} assume -2147483648 <= #t~nondet0 && #t~nondet0 <= 2147483647;call write~int(#t~nondet0, ~#d1~0.base, ~#d1~0.offset + 0, 4);havoc #t~nondet0;assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;call write~int(#t~nondet1, ~#d1~0.base, ~#d1~0.offset + 4, 4);havoc #t~nondet1;assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;call write~int(#t~nondet2, ~#d2~0.base, ~#d2~0.offset + 0, 4);havoc #t~nondet2;assume -2147483648 <= #t~nondet3 && #t~nondet3 <= 2147483647;call write~int(#t~nondet3, ~#d2~0.base, ~#d2~0.offset + 4, 4);havoc #t~nondet3; {37#true} is VALID [2018-11-14 19:10:42,255 INFO L273 TraceCheckUtils]: 7: Hoare triple {37#true} assume true; {37#true} is VALID [2018-11-14 19:10:42,255 INFO L268 TraceCheckUtils]: 8: Hoare quadruple {37#true} {37#true} #54#return; {37#true} is VALID [2018-11-14 19:10:42,255 INFO L256 TraceCheckUtils]: 9: Hoare triple {37#true} call #t~ret7.base, #t~ret7.offset := get_dummy(); {37#true} is VALID [2018-11-14 19:10:42,256 INFO L273 TraceCheckUtils]: 10: Hoare triple {37#true} assume #t~nondet4 % 256 != 0;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {37#true} is VALID [2018-11-14 19:10:42,256 INFO L273 TraceCheckUtils]: 11: Hoare triple {37#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {37#true} is VALID [2018-11-14 19:10:42,256 INFO L273 TraceCheckUtils]: 12: Hoare triple {37#true} assume true; {37#true} is VALID [2018-11-14 19:10:42,257 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {37#true} {37#true} #56#return; {37#true} is VALID [2018-11-14 19:10:42,257 INFO L273 TraceCheckUtils]: 14: Hoare triple {37#true} ~pd1~0.base, ~pd1~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {37#true} is VALID [2018-11-14 19:10:42,257 INFO L256 TraceCheckUtils]: 15: Hoare triple {37#true} call #t~ret8.base, #t~ret8.offset := get_dummy(); {37#true} is VALID [2018-11-14 19:10:42,258 INFO L273 TraceCheckUtils]: 16: Hoare triple {37#true} assume #t~nondet4 % 256 != 0;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {37#true} is VALID [2018-11-14 19:10:42,258 INFO L273 TraceCheckUtils]: 17: Hoare triple {37#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {37#true} is VALID [2018-11-14 19:10:42,259 INFO L273 TraceCheckUtils]: 18: Hoare triple {37#true} assume true; {37#true} is VALID [2018-11-14 19:10:42,259 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {37#true} {37#true} #58#return; {37#true} is VALID [2018-11-14 19:10:42,259 INFO L273 TraceCheckUtils]: 20: Hoare triple {37#true} ~pd2~0.base, ~pd2~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset;assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647;~i~0 := #t~nondet9;havoc #t~nondet9; {37#true} is VALID [2018-11-14 19:10:42,260 INFO L273 TraceCheckUtils]: 21: Hoare triple {37#true} assume (((~pd1~0.base != 0 || ~pd1~0.offset != 0) && ~pd1~0.base == ~pd2~0.base && ~pd1~0.offset == ~pd2~0.offset) && ~i~0 >= 0) && ~i~0 < 10;call write~int(~i~0, ~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~pa~0.base, ~pa~0.offset := ~pd1~0.base, ~pd1~0.offset + 8 + ~i~0 * 4;call #t~mem10 := read~int(~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~i~0 := #t~mem10 - 10;havoc #t~mem10; {37#true} is VALID [2018-11-14 19:10:42,273 INFO L273 TraceCheckUtils]: 22: Hoare triple {37#true} assume !true; {38#false} is VALID [2018-11-14 19:10:42,274 INFO L256 TraceCheckUtils]: 23: Hoare triple {38#false} call #t~ret13 := check(~pd2~0.base, ~pd2~0.offset, ~i~0); {37#true} is VALID [2018-11-14 19:10:42,274 INFO L273 TraceCheckUtils]: 24: Hoare triple {37#true} ~s1.base, ~s1.offset := #in~s1.base, #in~s1.offset;~i := #in~i;call #t~mem6 := read~int(~s1.base, ~s1.offset + 8 + ~i * 4, 4);#res := (if #t~mem6 == ~i then 1 else 0);havoc #t~mem6; {37#true} is VALID [2018-11-14 19:10:42,274 INFO L273 TraceCheckUtils]: 25: Hoare triple {37#true} assume true; {37#true} is VALID [2018-11-14 19:10:42,275 INFO L268 TraceCheckUtils]: 26: Hoare quadruple {37#true} {38#false} #60#return; {38#false} is VALID [2018-11-14 19:10:42,275 INFO L273 TraceCheckUtils]: 27: Hoare triple {38#false} assume -2147483648 <= #t~ret13 && #t~ret13 <= 2147483647; {38#false} is VALID [2018-11-14 19:10:42,275 INFO L273 TraceCheckUtils]: 28: Hoare triple {38#false} assume #t~ret13 == 0;havoc #t~ret13; {38#false} is VALID [2018-11-14 19:10:42,276 INFO L273 TraceCheckUtils]: 29: Hoare triple {38#false} assume !false; {38#false} is VALID [2018-11-14 19:10:42,283 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-14 19:10:42,289 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-14 19:10:42,289 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2018-11-14 19:10:42,294 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 30 [2018-11-14 19:10:42,300 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 19:10:42,304 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 2 states. [2018-11-14 19:10:42,678 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 27 edges. 27 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:10:42,678 INFO L459 AbstractCegarLoop]: Interpolant automaton has 2 states [2018-11-14 19:10:42,686 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 2 interpolants. [2018-11-14 19:10:42,687 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2018-11-14 19:10:42,690 INFO L87 Difference]: Start difference. First operand 34 states. Second operand 2 states. [2018-11-14 19:10:42,853 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:42,853 INFO L93 Difference]: Finished difference Result 47 states and 52 transitions. [2018-11-14 19:10:42,853 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 2 states. [2018-11-14 19:10:42,854 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 30 [2018-11-14 19:10:42,854 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 19:10:42,855 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 2 states. [2018-11-14 19:10:42,867 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 52 transitions. [2018-11-14 19:10:42,867 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 2 states. [2018-11-14 19:10:42,872 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 52 transitions. [2018-11-14 19:10:42,872 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 2 states and 52 transitions. [2018-11-14 19:10:43,088 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:43,102 INFO L225 Difference]: With dead ends: 47 [2018-11-14 19:10:43,102 INFO L226 Difference]: Without dead ends: 29 [2018-11-14 19:10:43,106 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:43,122 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 29 states. [2018-11-14 19:10:43,183 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 29 to 29. [2018-11-14 19:10:43,183 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 19:10:43,184 INFO L82 GeneralOperation]: Start isEquivalent. First operand 29 states. Second operand 29 states. [2018-11-14 19:10:43,184 INFO L74 IsIncluded]: Start isIncluded. First operand 29 states. Second operand 29 states. [2018-11-14 19:10:43,185 INFO L87 Difference]: Start difference. First operand 29 states. Second operand 29 states. [2018-11-14 19:10:43,190 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:43,191 INFO L93 Difference]: Finished difference Result 29 states and 31 transitions. [2018-11-14 19:10:43,191 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 31 transitions. [2018-11-14 19:10:43,192 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:43,192 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:43,192 INFO L74 IsIncluded]: Start isIncluded. First operand 29 states. Second operand 29 states. [2018-11-14 19:10:43,192 INFO L87 Difference]: Start difference. First operand 29 states. Second operand 29 states. [2018-11-14 19:10:43,197 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:43,198 INFO L93 Difference]: Finished difference Result 29 states and 31 transitions. [2018-11-14 19:10:43,198 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 31 transitions. [2018-11-14 19:10:43,199 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:43,199 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:43,199 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 19:10:43,200 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 19:10:43,200 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 29 states. [2018-11-14 19:10:43,203 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 29 states to 29 states and 31 transitions. [2018-11-14 19:10:43,205 INFO L78 Accepts]: Start accepts. Automaton has 29 states and 31 transitions. Word has length 30 [2018-11-14 19:10:43,205 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 19:10:43,206 INFO L480 AbstractCegarLoop]: Abstraction has 29 states and 31 transitions. [2018-11-14 19:10:43,206 INFO L481 AbstractCegarLoop]: Interpolant automaton has 2 states. [2018-11-14 19:10:43,206 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 31 transitions. [2018-11-14 19:10:43,207 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 33 [2018-11-14 19:10:43,207 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:10:43,208 INFO L375 BasicCegarLoop]: trace histogram [2, 2, 2, 1, 1, 1, 1, 1, 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:43,208 INFO L423 AbstractCegarLoop]: === Iteration 2 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:10:43,208 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:10:43,209 INFO L82 PathProgramCache]: Analyzing trace with hash 258535257, now seen corresponding path program 1 times [2018-11-14 19:10:43,209 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:10:43,209 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:10:43,211 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:43,211 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 19:10:43,211 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:43,268 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:44,398 WARN L179 SmtUtils]: Spent 366.00 ms on a formula simplification. DAG size of input: 27 DAG size of output: 16 [2018-11-14 19:10:44,556 INFO L256 TraceCheckUtils]: 0: Hoare triple {202#true} call ULTIMATE.init(); {202#true} is VALID [2018-11-14 19:10:44,557 INFO L273 TraceCheckUtils]: 1: Hoare triple {202#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];call ~#d1~0.base, ~#d1~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base); {204#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:10:44,558 INFO L273 TraceCheckUtils]: 2: Hoare triple {204#(= 0 |~#d1~0.offset|)} assume true; {204#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:10:44,559 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {204#(= 0 |~#d1~0.offset|)} {202#true} #62#return; {204#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:10:44,560 INFO L256 TraceCheckUtils]: 4: Hoare triple {204#(= 0 |~#d1~0.offset|)} call #t~ret14 := main(); {204#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:10:44,560 INFO L256 TraceCheckUtils]: 5: Hoare triple {204#(= 0 |~#d1~0.offset|)} call init(); {202#true} is VALID [2018-11-14 19:10:44,561 INFO L273 TraceCheckUtils]: 6: Hoare triple {202#true} assume -2147483648 <= #t~nondet0 && #t~nondet0 <= 2147483647;call write~int(#t~nondet0, ~#d1~0.base, ~#d1~0.offset + 0, 4);havoc #t~nondet0;assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;call write~int(#t~nondet1, ~#d1~0.base, ~#d1~0.offset + 4, 4);havoc #t~nondet1;assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;call write~int(#t~nondet2, ~#d2~0.base, ~#d2~0.offset + 0, 4);havoc #t~nondet2;assume -2147483648 <= #t~nondet3 && #t~nondet3 <= 2147483647;call write~int(#t~nondet3, ~#d2~0.base, ~#d2~0.offset + 4, 4);havoc #t~nondet3; {202#true} is VALID [2018-11-14 19:10:44,561 INFO L273 TraceCheckUtils]: 7: Hoare triple {202#true} assume true; {202#true} is VALID [2018-11-14 19:10:44,563 INFO L268 TraceCheckUtils]: 8: Hoare quadruple {202#true} {204#(= 0 |~#d1~0.offset|)} #54#return; {204#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:10:44,563 INFO L256 TraceCheckUtils]: 9: Hoare triple {204#(= 0 |~#d1~0.offset|)} call #t~ret7.base, #t~ret7.offset := get_dummy(); {202#true} is VALID [2018-11-14 19:10:44,565 INFO L273 TraceCheckUtils]: 10: Hoare triple {202#true} assume #t~nondet4 % 256 != 0;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {205#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#t~ite5.base|))} is VALID [2018-11-14 19:10:44,567 INFO L273 TraceCheckUtils]: 11: Hoare triple {205#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#t~ite5.base|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {206#(and (= |get_dummy_#res.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#res.base|))} is VALID [2018-11-14 19:10:44,567 INFO L273 TraceCheckUtils]: 12: Hoare triple {206#(and (= |get_dummy_#res.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#res.base|))} assume true; {206#(and (= |get_dummy_#res.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#res.base|))} is VALID [2018-11-14 19:10:44,577 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {206#(and (= |get_dummy_#res.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#res.base|))} {204#(= 0 |~#d1~0.offset|)} #56#return; {207#(and (= 0 |main_#t~ret7.offset|) (= |~#d1~0.base| |main_#t~ret7.base|) (= 0 |~#d1~0.offset|))} is VALID [2018-11-14 19:10:44,578 INFO L273 TraceCheckUtils]: 14: Hoare triple {207#(and (= 0 |main_#t~ret7.offset|) (= |~#d1~0.base| |main_#t~ret7.base|) (= 0 |~#d1~0.offset|))} ~pd1~0.base, ~pd1~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {208#(and (= 0 main_~pd1~0.offset) (= 0 |~#d1~0.offset|) (= |~#d1~0.base| main_~pd1~0.base))} is VALID [2018-11-14 19:10:44,578 INFO L256 TraceCheckUtils]: 15: Hoare triple {208#(and (= 0 main_~pd1~0.offset) (= 0 |~#d1~0.offset|) (= |~#d1~0.base| main_~pd1~0.base))} call #t~ret8.base, #t~ret8.offset := get_dummy(); {202#true} is VALID [2018-11-14 19:10:44,580 INFO L273 TraceCheckUtils]: 16: Hoare triple {202#true} assume #t~nondet4 % 256 != 0;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {205#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#t~ite5.base|))} is VALID [2018-11-14 19:10:44,581 INFO L273 TraceCheckUtils]: 17: Hoare triple {205#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#t~ite5.base|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {206#(and (= |get_dummy_#res.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#res.base|))} is VALID [2018-11-14 19:10:44,584 INFO L273 TraceCheckUtils]: 18: Hoare triple {206#(and (= |get_dummy_#res.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#res.base|))} assume true; {206#(and (= |get_dummy_#res.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#res.base|))} is VALID [2018-11-14 19:10:44,589 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {206#(and (= |get_dummy_#res.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#res.base|))} {208#(and (= 0 main_~pd1~0.offset) (= 0 |~#d1~0.offset|) (= |~#d1~0.base| main_~pd1~0.base))} #58#return; {209#(and (= 0 main_~pd1~0.offset) (= |main_#t~ret8.base| main_~pd1~0.base) (= 0 |main_#t~ret8.offset|))} is VALID [2018-11-14 19:10:44,594 INFO L273 TraceCheckUtils]: 20: Hoare triple {209#(and (= 0 main_~pd1~0.offset) (= |main_#t~ret8.base| main_~pd1~0.base) (= 0 |main_#t~ret8.offset|))} ~pd2~0.base, ~pd2~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset;assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647;~i~0 := #t~nondet9;havoc #t~nondet9; {210#(and (= 0 main_~pd1~0.offset) (= main_~pd2~0.offset 0) (= main_~pd2~0.base main_~pd1~0.base))} is VALID [2018-11-14 19:10:44,597 INFO L273 TraceCheckUtils]: 21: Hoare triple {210#(and (= 0 main_~pd1~0.offset) (= main_~pd2~0.offset 0) (= main_~pd2~0.base main_~pd1~0.base))} assume (((~pd1~0.base != 0 || ~pd1~0.offset != 0) && ~pd1~0.base == ~pd2~0.base && ~pd1~0.offset == ~pd2~0.offset) && ~i~0 >= 0) && ~i~0 < 10;call write~int(~i~0, ~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~pa~0.base, ~pa~0.offset := ~pd1~0.base, ~pd1~0.offset + 8 + ~i~0 * 4;call #t~mem10 := read~int(~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~i~0 := #t~mem10 - 10;havoc #t~mem10; {211#(and (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0) (= main_~pa~0.base main_~pd2~0.base))} is VALID [2018-11-14 19:10:44,599 INFO L273 TraceCheckUtils]: 22: Hoare triple {211#(and (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0) (= main_~pa~0.base main_~pd2~0.base))} assume true; {211#(and (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0) (= main_~pa~0.base main_~pd2~0.base))} is VALID [2018-11-14 19:10:44,600 INFO L273 TraceCheckUtils]: 23: Hoare triple {211#(and (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0) (= main_~pa~0.base main_~pd2~0.base))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {212#(and (<= main_~i~0 |main_#t~mem11|) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:10:44,601 INFO L273 TraceCheckUtils]: 24: Hoare triple {212#(and (<= main_~i~0 |main_#t~mem11|) (= main_~pd2~0.offset 0))} assume !(~i~0 <= #t~mem11);havoc #t~mem11; {203#false} is VALID [2018-11-14 19:10:44,601 INFO L256 TraceCheckUtils]: 25: Hoare triple {203#false} call #t~ret13 := check(~pd2~0.base, ~pd2~0.offset, ~i~0); {202#true} is VALID [2018-11-14 19:10:44,602 INFO L273 TraceCheckUtils]: 26: Hoare triple {202#true} ~s1.base, ~s1.offset := #in~s1.base, #in~s1.offset;~i := #in~i;call #t~mem6 := read~int(~s1.base, ~s1.offset + 8 + ~i * 4, 4);#res := (if #t~mem6 == ~i then 1 else 0);havoc #t~mem6; {202#true} is VALID [2018-11-14 19:10:44,603 INFO L273 TraceCheckUtils]: 27: Hoare triple {202#true} assume true; {202#true} is VALID [2018-11-14 19:10:44,603 INFO L268 TraceCheckUtils]: 28: Hoare quadruple {202#true} {203#false} #60#return; {203#false} is VALID [2018-11-14 19:10:44,604 INFO L273 TraceCheckUtils]: 29: Hoare triple {203#false} assume -2147483648 <= #t~ret13 && #t~ret13 <= 2147483647; {203#false} is VALID [2018-11-14 19:10:44,604 INFO L273 TraceCheckUtils]: 30: Hoare triple {203#false} assume #t~ret13 == 0;havoc #t~ret13; {203#false} is VALID [2018-11-14 19:10:44,605 INFO L273 TraceCheckUtils]: 31: Hoare triple {203#false} assume !false; {203#false} is VALID [2018-11-14 19:10:44,609 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-14 19:10:44,609 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-14 19:10:44,609 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [11] imperfect sequences [] total 11 [2018-11-14 19:10:44,611 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 32 [2018-11-14 19:10:44,612 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 19:10:44,612 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states. [2018-11-14 19:10:44,706 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 29 edges. 29 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:10:44,707 INFO L459 AbstractCegarLoop]: Interpolant automaton has 11 states [2018-11-14 19:10:44,707 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2018-11-14 19:10:44,707 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=21, Invalid=89, Unknown=0, NotChecked=0, Total=110 [2018-11-14 19:10:44,708 INFO L87 Difference]: Start difference. First operand 29 states and 31 transitions. Second operand 11 states. [2018-11-14 19:10:45,965 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:45,965 INFO L93 Difference]: Finished difference Result 57 states and 63 transitions. [2018-11-14 19:10:45,965 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2018-11-14 19:10:45,965 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 32 [2018-11-14 19:10:45,966 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 19:10:45,966 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2018-11-14 19:10:45,972 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 63 transitions. [2018-11-14 19:10:45,972 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2018-11-14 19:10:45,977 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 63 transitions. [2018-11-14 19:10:45,978 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states and 63 transitions. [2018-11-14 19:10:46,077 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 63 edges. 63 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:10:46,081 INFO L225 Difference]: With dead ends: 57 [2018-11-14 19:10:46,082 INFO L226 Difference]: Without dead ends: 49 [2018-11-14 19:10:46,083 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 20 GetRequests, 2 SyntacticMatches, 3 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 24 ImplicationChecksByTransitivity, 1.1s TimeCoverageRelationStatistics Valid=55, Invalid=217, Unknown=0, NotChecked=0, Total=272 [2018-11-14 19:10:46,083 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 49 states. [2018-11-14 19:10:46,136 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 49 to 39. [2018-11-14 19:10:46,136 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 19:10:46,137 INFO L82 GeneralOperation]: Start isEquivalent. First operand 49 states. Second operand 39 states. [2018-11-14 19:10:46,137 INFO L74 IsIncluded]: Start isIncluded. First operand 49 states. Second operand 39 states. [2018-11-14 19:10:46,137 INFO L87 Difference]: Start difference. First operand 49 states. Second operand 39 states. [2018-11-14 19:10:46,143 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:46,143 INFO L93 Difference]: Finished difference Result 49 states and 55 transitions. [2018-11-14 19:10:46,143 INFO L276 IsEmpty]: Start isEmpty. Operand 49 states and 55 transitions. [2018-11-14 19:10:46,144 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:46,145 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:46,145 INFO L74 IsIncluded]: Start isIncluded. First operand 39 states. Second operand 49 states. [2018-11-14 19:10:46,145 INFO L87 Difference]: Start difference. First operand 39 states. Second operand 49 states. [2018-11-14 19:10:46,151 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:46,151 INFO L93 Difference]: Finished difference Result 49 states and 55 transitions. [2018-11-14 19:10:46,151 INFO L276 IsEmpty]: Start isEmpty. Operand 49 states and 55 transitions. [2018-11-14 19:10:46,152 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:46,152 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:46,153 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 19:10:46,153 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 19:10:46,153 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 39 states. [2018-11-14 19:10:46,157 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 39 states to 39 states and 44 transitions. [2018-11-14 19:10:46,157 INFO L78 Accepts]: Start accepts. Automaton has 39 states and 44 transitions. Word has length 32 [2018-11-14 19:10:46,157 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 19:10:46,158 INFO L480 AbstractCegarLoop]: Abstraction has 39 states and 44 transitions. [2018-11-14 19:10:46,158 INFO L481 AbstractCegarLoop]: Interpolant automaton has 11 states. [2018-11-14 19:10:46,158 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 44 transitions. [2018-11-14 19:10:46,159 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 33 [2018-11-14 19:10:46,160 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:10:46,160 INFO L375 BasicCegarLoop]: trace histogram [2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 19:10:46,160 INFO L423 AbstractCegarLoop]: === Iteration 3 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:10:46,160 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:10:46,161 INFO L82 PathProgramCache]: Analyzing trace with hash 477389975, now seen corresponding path program 1 times [2018-11-14 19:10:46,161 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:10:46,161 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:10:46,162 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:46,162 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 19:10:46,163 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:46,200 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:46,495 INFO L256 TraceCheckUtils]: 0: Hoare triple {455#true} call ULTIMATE.init(); {455#true} is VALID [2018-11-14 19:10:46,504 INFO L273 TraceCheckUtils]: 1: Hoare triple {455#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];call ~#d1~0.base, ~#d1~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base); {457#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-14 19:10:46,504 INFO L273 TraceCheckUtils]: 2: Hoare triple {457#(not (= |~#d1~0.base| |~#d2~0.base|))} assume true; {457#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-14 19:10:46,505 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {457#(not (= |~#d1~0.base| |~#d2~0.base|))} {455#true} #62#return; {457#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-14 19:10:46,510 INFO L256 TraceCheckUtils]: 4: Hoare triple {457#(not (= |~#d1~0.base| |~#d2~0.base|))} call #t~ret14 := main(); {457#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-14 19:10:46,510 INFO L256 TraceCheckUtils]: 5: Hoare triple {457#(not (= |~#d1~0.base| |~#d2~0.base|))} call init(); {455#true} is VALID [2018-11-14 19:10:46,511 INFO L273 TraceCheckUtils]: 6: Hoare triple {455#true} assume -2147483648 <= #t~nondet0 && #t~nondet0 <= 2147483647;call write~int(#t~nondet0, ~#d1~0.base, ~#d1~0.offset + 0, 4);havoc #t~nondet0;assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;call write~int(#t~nondet1, ~#d1~0.base, ~#d1~0.offset + 4, 4);havoc #t~nondet1;assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;call write~int(#t~nondet2, ~#d2~0.base, ~#d2~0.offset + 0, 4);havoc #t~nondet2;assume -2147483648 <= #t~nondet3 && #t~nondet3 <= 2147483647;call write~int(#t~nondet3, ~#d2~0.base, ~#d2~0.offset + 4, 4);havoc #t~nondet3; {455#true} is VALID [2018-11-14 19:10:46,511 INFO L273 TraceCheckUtils]: 7: Hoare triple {455#true} assume true; {455#true} is VALID [2018-11-14 19:10:46,512 INFO L268 TraceCheckUtils]: 8: Hoare quadruple {455#true} {457#(not (= |~#d1~0.base| |~#d2~0.base|))} #54#return; {457#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-14 19:10:46,512 INFO L256 TraceCheckUtils]: 9: Hoare triple {457#(not (= |~#d1~0.base| |~#d2~0.base|))} call #t~ret7.base, #t~ret7.offset := get_dummy(); {455#true} is VALID [2018-11-14 19:10:46,512 INFO L273 TraceCheckUtils]: 10: Hoare triple {455#true} assume !(#t~nondet4 % 256 != 0);#t~ite5.base, #t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {458#(= |~#d2~0.base| |get_dummy_#t~ite5.base|)} is VALID [2018-11-14 19:10:46,513 INFO L273 TraceCheckUtils]: 11: Hoare triple {458#(= |~#d2~0.base| |get_dummy_#t~ite5.base|)} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {459#(= |~#d2~0.base| |get_dummy_#res.base|)} is VALID [2018-11-14 19:10:46,513 INFO L273 TraceCheckUtils]: 12: Hoare triple {459#(= |~#d2~0.base| |get_dummy_#res.base|)} assume true; {459#(= |~#d2~0.base| |get_dummy_#res.base|)} is VALID [2018-11-14 19:10:46,514 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {459#(= |~#d2~0.base| |get_dummy_#res.base|)} {457#(not (= |~#d1~0.base| |~#d2~0.base|))} #56#return; {460#(not (= |~#d1~0.base| |main_#t~ret7.base|))} is VALID [2018-11-14 19:10:46,515 INFO L273 TraceCheckUtils]: 14: Hoare triple {460#(not (= |~#d1~0.base| |main_#t~ret7.base|))} ~pd1~0.base, ~pd1~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {461#(not (= |~#d1~0.base| main_~pd1~0.base))} is VALID [2018-11-14 19:10:46,515 INFO L256 TraceCheckUtils]: 15: Hoare triple {461#(not (= |~#d1~0.base| main_~pd1~0.base))} call #t~ret8.base, #t~ret8.offset := get_dummy(); {455#true} is VALID [2018-11-14 19:10:46,516 INFO L273 TraceCheckUtils]: 16: Hoare triple {455#true} assume #t~nondet4 % 256 != 0;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {462#(= |~#d1~0.base| |get_dummy_#t~ite5.base|)} is VALID [2018-11-14 19:10:46,517 INFO L273 TraceCheckUtils]: 17: Hoare triple {462#(= |~#d1~0.base| |get_dummy_#t~ite5.base|)} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {463#(= |~#d1~0.base| |get_dummy_#res.base|)} is VALID [2018-11-14 19:10:46,518 INFO L273 TraceCheckUtils]: 18: Hoare triple {463#(= |~#d1~0.base| |get_dummy_#res.base|)} assume true; {463#(= |~#d1~0.base| |get_dummy_#res.base|)} is VALID [2018-11-14 19:10:46,519 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {463#(= |~#d1~0.base| |get_dummy_#res.base|)} {461#(not (= |~#d1~0.base| main_~pd1~0.base))} #58#return; {464#(not (= |main_#t~ret8.base| main_~pd1~0.base))} is VALID [2018-11-14 19:10:46,521 INFO L273 TraceCheckUtils]: 20: Hoare triple {464#(not (= |main_#t~ret8.base| main_~pd1~0.base))} ~pd2~0.base, ~pd2~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset;assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647;~i~0 := #t~nondet9;havoc #t~nondet9; {465#(not (= main_~pd2~0.base main_~pd1~0.base))} is VALID [2018-11-14 19:10:46,522 INFO L273 TraceCheckUtils]: 21: Hoare triple {465#(not (= main_~pd2~0.base main_~pd1~0.base))} assume (((~pd1~0.base != 0 || ~pd1~0.offset != 0) && ~pd1~0.base == ~pd2~0.base && ~pd1~0.offset == ~pd2~0.offset) && ~i~0 >= 0) && ~i~0 < 10;call write~int(~i~0, ~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~pa~0.base, ~pa~0.offset := ~pd1~0.base, ~pd1~0.offset + 8 + ~i~0 * 4;call #t~mem10 := read~int(~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~i~0 := #t~mem10 - 10;havoc #t~mem10; {456#false} is VALID [2018-11-14 19:10:46,523 INFO L273 TraceCheckUtils]: 22: Hoare triple {456#false} assume true; {456#false} is VALID [2018-11-14 19:10:46,523 INFO L273 TraceCheckUtils]: 23: Hoare triple {456#false} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {456#false} is VALID [2018-11-14 19:10:46,524 INFO L273 TraceCheckUtils]: 24: Hoare triple {456#false} assume !(~i~0 <= #t~mem11);havoc #t~mem11; {456#false} is VALID [2018-11-14 19:10:46,524 INFO L256 TraceCheckUtils]: 25: Hoare triple {456#false} call #t~ret13 := check(~pd2~0.base, ~pd2~0.offset, ~i~0); {455#true} is VALID [2018-11-14 19:10:46,524 INFO L273 TraceCheckUtils]: 26: Hoare triple {455#true} ~s1.base, ~s1.offset := #in~s1.base, #in~s1.offset;~i := #in~i;call #t~mem6 := read~int(~s1.base, ~s1.offset + 8 + ~i * 4, 4);#res := (if #t~mem6 == ~i then 1 else 0);havoc #t~mem6; {455#true} is VALID [2018-11-14 19:10:46,525 INFO L273 TraceCheckUtils]: 27: Hoare triple {455#true} assume true; {455#true} is VALID [2018-11-14 19:10:46,525 INFO L268 TraceCheckUtils]: 28: Hoare quadruple {455#true} {456#false} #60#return; {456#false} is VALID [2018-11-14 19:10:46,525 INFO L273 TraceCheckUtils]: 29: Hoare triple {456#false} assume -2147483648 <= #t~ret13 && #t~ret13 <= 2147483647; {456#false} is VALID [2018-11-14 19:10:46,526 INFO L273 TraceCheckUtils]: 30: Hoare triple {456#false} assume #t~ret13 == 0;havoc #t~ret13; {456#false} is VALID [2018-11-14 19:10:46,526 INFO L273 TraceCheckUtils]: 31: Hoare triple {456#false} assume !false; {456#false} is VALID [2018-11-14 19:10:46,529 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2018-11-14 19:10:46,529 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-14 19:10:46,529 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:46,550 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 19:10:46,591 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:46,617 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:46,623 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-14 19:10:46,701 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 14 [2018-11-14 19:10:46,745 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 1 [2018-11-14 19:10:46,749 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 19:10:46,756 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:10:46,762 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:10:46,762 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 1 variables, input treesize:11, output treesize:4 [2018-11-14 19:10:46,764 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 19:10:47,156 INFO L256 TraceCheckUtils]: 0: Hoare triple {455#true} call ULTIMATE.init(); {455#true} is VALID [2018-11-14 19:10:47,157 INFO L273 TraceCheckUtils]: 1: Hoare triple {455#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];call ~#d1~0.base, ~#d1~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base); {457#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-14 19:10:47,157 INFO L273 TraceCheckUtils]: 2: Hoare triple {457#(not (= |~#d1~0.base| |~#d2~0.base|))} assume true; {457#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-14 19:10:47,169 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {457#(not (= |~#d1~0.base| |~#d2~0.base|))} {455#true} #62#return; {457#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-14 19:10:47,170 INFO L256 TraceCheckUtils]: 4: Hoare triple {457#(not (= |~#d1~0.base| |~#d2~0.base|))} call #t~ret14 := main(); {457#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-14 19:10:47,171 INFO L256 TraceCheckUtils]: 5: Hoare triple {457#(not (= |~#d1~0.base| |~#d2~0.base|))} call init(); {457#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-14 19:10:47,172 INFO L273 TraceCheckUtils]: 6: Hoare triple {457#(not (= |~#d1~0.base| |~#d2~0.base|))} assume -2147483648 <= #t~nondet0 && #t~nondet0 <= 2147483647;call write~int(#t~nondet0, ~#d1~0.base, ~#d1~0.offset + 0, 4);havoc #t~nondet0;assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;call write~int(#t~nondet1, ~#d1~0.base, ~#d1~0.offset + 4, 4);havoc #t~nondet1;assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;call write~int(#t~nondet2, ~#d2~0.base, ~#d2~0.offset + 0, 4);havoc #t~nondet2;assume -2147483648 <= #t~nondet3 && #t~nondet3 <= 2147483647;call write~int(#t~nondet3, ~#d2~0.base, ~#d2~0.offset + 4, 4);havoc #t~nondet3; {457#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-14 19:10:47,172 INFO L273 TraceCheckUtils]: 7: Hoare triple {457#(not (= |~#d1~0.base| |~#d2~0.base|))} assume true; {457#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-14 19:10:47,173 INFO L268 TraceCheckUtils]: 8: Hoare quadruple {457#(not (= |~#d1~0.base| |~#d2~0.base|))} {457#(not (= |~#d1~0.base| |~#d2~0.base|))} #54#return; {457#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-14 19:10:47,178 INFO L256 TraceCheckUtils]: 9: Hoare triple {457#(not (= |~#d1~0.base| |~#d2~0.base|))} call #t~ret7.base, #t~ret7.offset := get_dummy(); {457#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-14 19:10:47,183 INFO L273 TraceCheckUtils]: 10: Hoare triple {457#(not (= |~#d1~0.base| |~#d2~0.base|))} assume !(#t~nondet4 % 256 != 0);#t~ite5.base, #t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {499#(and (= |~#d2~0.base| |get_dummy_#t~ite5.base|) (not (= |~#d1~0.base| |~#d2~0.base|)))} is VALID [2018-11-14 19:10:47,184 INFO L273 TraceCheckUtils]: 11: Hoare triple {499#(and (= |~#d2~0.base| |get_dummy_#t~ite5.base|) (not (= |~#d1~0.base| |~#d2~0.base|)))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {503#(and (not (= |~#d1~0.base| |~#d2~0.base|)) (= |get_dummy_#res.base| |~#d2~0.base|))} is VALID [2018-11-14 19:10:47,185 INFO L273 TraceCheckUtils]: 12: Hoare triple {503#(and (not (= |~#d1~0.base| |~#d2~0.base|)) (= |get_dummy_#res.base| |~#d2~0.base|))} assume true; {503#(and (not (= |~#d1~0.base| |~#d2~0.base|)) (= |get_dummy_#res.base| |~#d2~0.base|))} is VALID [2018-11-14 19:10:47,189 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {503#(and (not (= |~#d1~0.base| |~#d2~0.base|)) (= |get_dummy_#res.base| |~#d2~0.base|))} {457#(not (= |~#d1~0.base| |~#d2~0.base|))} #56#return; {460#(not (= |~#d1~0.base| |main_#t~ret7.base|))} is VALID [2018-11-14 19:10:47,191 INFO L273 TraceCheckUtils]: 14: Hoare triple {460#(not (= |~#d1~0.base| |main_#t~ret7.base|))} ~pd1~0.base, ~pd1~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {461#(not (= |~#d1~0.base| main_~pd1~0.base))} is VALID [2018-11-14 19:10:47,191 INFO L256 TraceCheckUtils]: 15: Hoare triple {461#(not (= |~#d1~0.base| main_~pd1~0.base))} call #t~ret8.base, #t~ret8.offset := get_dummy(); {455#true} is VALID [2018-11-14 19:10:47,192 INFO L273 TraceCheckUtils]: 16: Hoare triple {455#true} assume #t~nondet4 % 256 != 0;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {462#(= |~#d1~0.base| |get_dummy_#t~ite5.base|)} is VALID [2018-11-14 19:10:47,192 INFO L273 TraceCheckUtils]: 17: Hoare triple {462#(= |~#d1~0.base| |get_dummy_#t~ite5.base|)} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {463#(= |~#d1~0.base| |get_dummy_#res.base|)} is VALID [2018-11-14 19:10:47,193 INFO L273 TraceCheckUtils]: 18: Hoare triple {463#(= |~#d1~0.base| |get_dummy_#res.base|)} assume true; {463#(= |~#d1~0.base| |get_dummy_#res.base|)} is VALID [2018-11-14 19:10:47,194 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {463#(= |~#d1~0.base| |get_dummy_#res.base|)} {461#(not (= |~#d1~0.base| main_~pd1~0.base))} #58#return; {464#(not (= |main_#t~ret8.base| main_~pd1~0.base))} is VALID [2018-11-14 19:10:47,195 INFO L273 TraceCheckUtils]: 20: Hoare triple {464#(not (= |main_#t~ret8.base| main_~pd1~0.base))} ~pd2~0.base, ~pd2~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset;assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647;~i~0 := #t~nondet9;havoc #t~nondet9; {465#(not (= main_~pd2~0.base main_~pd1~0.base))} is VALID [2018-11-14 19:10:47,197 INFO L273 TraceCheckUtils]: 21: Hoare triple {465#(not (= main_~pd2~0.base main_~pd1~0.base))} assume (((~pd1~0.base != 0 || ~pd1~0.offset != 0) && ~pd1~0.base == ~pd2~0.base && ~pd1~0.offset == ~pd2~0.offset) && ~i~0 >= 0) && ~i~0 < 10;call write~int(~i~0, ~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~pa~0.base, ~pa~0.offset := ~pd1~0.base, ~pd1~0.offset + 8 + ~i~0 * 4;call #t~mem10 := read~int(~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~i~0 := #t~mem10 - 10;havoc #t~mem10; {456#false} is VALID [2018-11-14 19:10:47,197 INFO L273 TraceCheckUtils]: 22: Hoare triple {456#false} assume true; {456#false} is VALID [2018-11-14 19:10:47,198 INFO L273 TraceCheckUtils]: 23: Hoare triple {456#false} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {456#false} is VALID [2018-11-14 19:10:47,198 INFO L273 TraceCheckUtils]: 24: Hoare triple {456#false} assume !(~i~0 <= #t~mem11);havoc #t~mem11; {456#false} is VALID [2018-11-14 19:10:47,198 INFO L256 TraceCheckUtils]: 25: Hoare triple {456#false} call #t~ret13 := check(~pd2~0.base, ~pd2~0.offset, ~i~0); {456#false} is VALID [2018-11-14 19:10:47,199 INFO L273 TraceCheckUtils]: 26: Hoare triple {456#false} ~s1.base, ~s1.offset := #in~s1.base, #in~s1.offset;~i := #in~i;call #t~mem6 := read~int(~s1.base, ~s1.offset + 8 + ~i * 4, 4);#res := (if #t~mem6 == ~i then 1 else 0);havoc #t~mem6; {456#false} is VALID [2018-11-14 19:10:47,199 INFO L273 TraceCheckUtils]: 27: Hoare triple {456#false} assume true; {456#false} is VALID [2018-11-14 19:10:47,200 INFO L268 TraceCheckUtils]: 28: Hoare quadruple {456#false} {456#false} #60#return; {456#false} is VALID [2018-11-14 19:10:47,200 INFO L273 TraceCheckUtils]: 29: Hoare triple {456#false} assume -2147483648 <= #t~ret13 && #t~ret13 <= 2147483647; {456#false} is VALID [2018-11-14 19:10:47,201 INFO L273 TraceCheckUtils]: 30: Hoare triple {456#false} assume #t~ret13 == 0;havoc #t~ret13; {456#false} is VALID [2018-11-14 19:10:47,201 INFO L273 TraceCheckUtils]: 31: Hoare triple {456#false} assume !false; {456#false} is VALID [2018-11-14 19:10:47,204 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 0 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 19:10:47,229 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-14 19:10:47,230 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 11] total 13 [2018-11-14 19:10:47,230 INFO L78 Accepts]: Start accepts. Automaton has 13 states. Word has length 32 [2018-11-14 19:10:47,231 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 19:10:47,231 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 13 states. [2018-11-14 19:10:47,323 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:10:47,323 INFO L459 AbstractCegarLoop]: Interpolant automaton has 13 states [2018-11-14 19:10:47,324 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2018-11-14 19:10:47,324 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=27, Invalid=129, Unknown=0, NotChecked=0, Total=156 [2018-11-14 19:10:47,325 INFO L87 Difference]: Start difference. First operand 39 states and 44 transitions. Second operand 13 states. [2018-11-14 19:10:49,208 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:49,208 INFO L93 Difference]: Finished difference Result 60 states and 66 transitions. [2018-11-14 19:10:49,209 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2018-11-14 19:10:49,209 INFO L78 Accepts]: Start accepts. Automaton has 13 states. Word has length 32 [2018-11-14 19:10:49,209 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 19:10:49,209 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2018-11-14 19:10:49,213 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 63 transitions. [2018-11-14 19:10:49,214 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2018-11-14 19:10:49,218 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 63 transitions. [2018-11-14 19:10:49,218 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states and 63 transitions. [2018-11-14 19:10:49,364 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 63 edges. 63 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:10:49,369 INFO L225 Difference]: With dead ends: 60 [2018-11-14 19:10:49,369 INFO L226 Difference]: Without dead ends: 47 [2018-11-14 19:10:49,373 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 48 GetRequests, 31 SyntacticMatches, 0 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 26 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=55, Invalid=287, Unknown=0, NotChecked=0, Total=342 [2018-11-14 19:10:49,373 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 47 states. [2018-11-14 19:10:49,610 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 47 to 39. [2018-11-14 19:10:49,610 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 19:10:49,611 INFO L82 GeneralOperation]: Start isEquivalent. First operand 47 states. Second operand 39 states. [2018-11-14 19:10:49,611 INFO L74 IsIncluded]: Start isIncluded. First operand 47 states. Second operand 39 states. [2018-11-14 19:10:49,611 INFO L87 Difference]: Start difference. First operand 47 states. Second operand 39 states. [2018-11-14 19:10:49,616 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:49,616 INFO L93 Difference]: Finished difference Result 47 states and 52 transitions. [2018-11-14 19:10:49,617 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 52 transitions. [2018-11-14 19:10:49,618 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:49,618 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:49,618 INFO L74 IsIncluded]: Start isIncluded. First operand 39 states. Second operand 47 states. [2018-11-14 19:10:49,618 INFO L87 Difference]: Start difference. First operand 39 states. Second operand 47 states. [2018-11-14 19:10:49,622 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:49,623 INFO L93 Difference]: Finished difference Result 47 states and 52 transitions. [2018-11-14 19:10:49,623 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 52 transitions. [2018-11-14 19:10:49,624 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:49,624 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:49,624 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 19:10:49,624 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 19:10:49,625 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 39 states. [2018-11-14 19:10:49,628 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 39 states to 39 states and 43 transitions. [2018-11-14 19:10:49,628 INFO L78 Accepts]: Start accepts. Automaton has 39 states and 43 transitions. Word has length 32 [2018-11-14 19:10:49,628 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 19:10:49,629 INFO L480 AbstractCegarLoop]: Abstraction has 39 states and 43 transitions. [2018-11-14 19:10:49,629 INFO L481 AbstractCegarLoop]: Interpolant automaton has 13 states. [2018-11-14 19:10:49,629 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 43 transitions. [2018-11-14 19:10:49,630 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 33 [2018-11-14 19:10:49,630 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:10:49,631 INFO L375 BasicCegarLoop]: trace histogram [2, 2, 2, 1, 1, 1, 1, 1, 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:49,631 INFO L423 AbstractCegarLoop]: === Iteration 4 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:10:49,631 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:10:49,631 INFO L82 PathProgramCache]: Analyzing trace with hash -543678379, now seen corresponding path program 1 times [2018-11-14 19:10:49,632 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:10:49,632 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:10:49,633 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:49,633 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 19:10:49,633 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:49,659 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:50,001 INFO L256 TraceCheckUtils]: 0: Hoare triple {803#true} call ULTIMATE.init(); {803#true} is VALID [2018-11-14 19:10:50,002 INFO L273 TraceCheckUtils]: 1: Hoare triple {803#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];call ~#d1~0.base, ~#d1~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base); {805#(= 0 |~#d2~0.offset|)} is VALID [2018-11-14 19:10:50,006 INFO L273 TraceCheckUtils]: 2: Hoare triple {805#(= 0 |~#d2~0.offset|)} assume true; {805#(= 0 |~#d2~0.offset|)} is VALID [2018-11-14 19:10:50,007 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {805#(= 0 |~#d2~0.offset|)} {803#true} #62#return; {805#(= 0 |~#d2~0.offset|)} is VALID [2018-11-14 19:10:50,007 INFO L256 TraceCheckUtils]: 4: Hoare triple {805#(= 0 |~#d2~0.offset|)} call #t~ret14 := main(); {805#(= 0 |~#d2~0.offset|)} is VALID [2018-11-14 19:10:50,008 INFO L256 TraceCheckUtils]: 5: Hoare triple {805#(= 0 |~#d2~0.offset|)} call init(); {803#true} is VALID [2018-11-14 19:10:50,008 INFO L273 TraceCheckUtils]: 6: Hoare triple {803#true} assume -2147483648 <= #t~nondet0 && #t~nondet0 <= 2147483647;call write~int(#t~nondet0, ~#d1~0.base, ~#d1~0.offset + 0, 4);havoc #t~nondet0;assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;call write~int(#t~nondet1, ~#d1~0.base, ~#d1~0.offset + 4, 4);havoc #t~nondet1;assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;call write~int(#t~nondet2, ~#d2~0.base, ~#d2~0.offset + 0, 4);havoc #t~nondet2;assume -2147483648 <= #t~nondet3 && #t~nondet3 <= 2147483647;call write~int(#t~nondet3, ~#d2~0.base, ~#d2~0.offset + 4, 4);havoc #t~nondet3; {803#true} is VALID [2018-11-14 19:10:50,008 INFO L273 TraceCheckUtils]: 7: Hoare triple {803#true} assume true; {803#true} is VALID [2018-11-14 19:10:50,009 INFO L268 TraceCheckUtils]: 8: Hoare quadruple {803#true} {805#(= 0 |~#d2~0.offset|)} #54#return; {805#(= 0 |~#d2~0.offset|)} is VALID [2018-11-14 19:10:50,009 INFO L256 TraceCheckUtils]: 9: Hoare triple {805#(= 0 |~#d2~0.offset|)} call #t~ret7.base, #t~ret7.offset := get_dummy(); {803#true} is VALID [2018-11-14 19:10:50,009 INFO L273 TraceCheckUtils]: 10: Hoare triple {803#true} assume !(#t~nondet4 % 256 != 0);#t~ite5.base, #t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {806#(and (= |~#d2~0.base| |get_dummy_#t~ite5.base|) (= |get_dummy_#t~ite5.offset| |~#d2~0.offset|))} is VALID [2018-11-14 19:10:50,010 INFO L273 TraceCheckUtils]: 11: Hoare triple {806#(and (= |~#d2~0.base| |get_dummy_#t~ite5.base|) (= |get_dummy_#t~ite5.offset| |~#d2~0.offset|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {807#(and (= |get_dummy_#res.offset| |~#d2~0.offset|) (= |~#d2~0.base| |get_dummy_#res.base|))} is VALID [2018-11-14 19:10:50,011 INFO L273 TraceCheckUtils]: 12: Hoare triple {807#(and (= |get_dummy_#res.offset| |~#d2~0.offset|) (= |~#d2~0.base| |get_dummy_#res.base|))} assume true; {807#(and (= |get_dummy_#res.offset| |~#d2~0.offset|) (= |~#d2~0.base| |get_dummy_#res.base|))} is VALID [2018-11-14 19:10:50,019 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {807#(and (= |get_dummy_#res.offset| |~#d2~0.offset|) (= |~#d2~0.base| |get_dummy_#res.base|))} {805#(= 0 |~#d2~0.offset|)} #56#return; {808#(and (= |~#d2~0.base| |main_#t~ret7.base|) (= 0 |main_#t~ret7.offset|) (= 0 |~#d2~0.offset|))} is VALID [2018-11-14 19:10:50,021 INFO L273 TraceCheckUtils]: 14: Hoare triple {808#(and (= |~#d2~0.base| |main_#t~ret7.base|) (= 0 |main_#t~ret7.offset|) (= 0 |~#d2~0.offset|))} ~pd1~0.base, ~pd1~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {809#(and (= |~#d2~0.base| main_~pd1~0.base) (= 0 |~#d2~0.offset|) (= 0 main_~pd1~0.offset))} is VALID [2018-11-14 19:10:50,021 INFO L256 TraceCheckUtils]: 15: Hoare triple {809#(and (= |~#d2~0.base| main_~pd1~0.base) (= 0 |~#d2~0.offset|) (= 0 main_~pd1~0.offset))} call #t~ret8.base, #t~ret8.offset := get_dummy(); {803#true} is VALID [2018-11-14 19:10:50,022 INFO L273 TraceCheckUtils]: 16: Hoare triple {803#true} assume !(#t~nondet4 % 256 != 0);#t~ite5.base, #t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {806#(and (= |~#d2~0.base| |get_dummy_#t~ite5.base|) (= |get_dummy_#t~ite5.offset| |~#d2~0.offset|))} is VALID [2018-11-14 19:10:50,023 INFO L273 TraceCheckUtils]: 17: Hoare triple {806#(and (= |~#d2~0.base| |get_dummy_#t~ite5.base|) (= |get_dummy_#t~ite5.offset| |~#d2~0.offset|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {807#(and (= |get_dummy_#res.offset| |~#d2~0.offset|) (= |~#d2~0.base| |get_dummy_#res.base|))} is VALID [2018-11-14 19:10:50,024 INFO L273 TraceCheckUtils]: 18: Hoare triple {807#(and (= |get_dummy_#res.offset| |~#d2~0.offset|) (= |~#d2~0.base| |get_dummy_#res.base|))} assume true; {807#(and (= |get_dummy_#res.offset| |~#d2~0.offset|) (= |~#d2~0.base| |get_dummy_#res.base|))} is VALID [2018-11-14 19:10:50,029 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {807#(and (= |get_dummy_#res.offset| |~#d2~0.offset|) (= |~#d2~0.base| |get_dummy_#res.base|))} {809#(and (= |~#d2~0.base| main_~pd1~0.base) (= 0 |~#d2~0.offset|) (= 0 main_~pd1~0.offset))} #58#return; {810#(and (= 0 main_~pd1~0.offset) (= |main_#t~ret8.base| main_~pd1~0.base) (= 0 |main_#t~ret8.offset|))} is VALID [2018-11-14 19:10:50,030 INFO L273 TraceCheckUtils]: 20: Hoare triple {810#(and (= 0 main_~pd1~0.offset) (= |main_#t~ret8.base| main_~pd1~0.base) (= 0 |main_#t~ret8.offset|))} ~pd2~0.base, ~pd2~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset;assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647;~i~0 := #t~nondet9;havoc #t~nondet9; {811#(and (= 0 main_~pd1~0.offset) (= main_~pd2~0.offset 0) (= main_~pd2~0.base main_~pd1~0.base))} is VALID [2018-11-14 19:10:50,032 INFO L273 TraceCheckUtils]: 21: Hoare triple {811#(and (= 0 main_~pd1~0.offset) (= main_~pd2~0.offset 0) (= main_~pd2~0.base main_~pd1~0.base))} assume (((~pd1~0.base != 0 || ~pd1~0.offset != 0) && ~pd1~0.base == ~pd2~0.base && ~pd1~0.offset == ~pd2~0.offset) && ~i~0 >= 0) && ~i~0 < 10;call write~int(~i~0, ~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~pa~0.base, ~pa~0.offset := ~pd1~0.base, ~pd1~0.offset + 8 + ~i~0 * 4;call #t~mem10 := read~int(~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~i~0 := #t~mem10 - 10;havoc #t~mem10; {812#(and (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0) (= main_~pa~0.base main_~pd2~0.base))} is VALID [2018-11-14 19:10:50,036 INFO L273 TraceCheckUtils]: 22: Hoare triple {812#(and (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0) (= main_~pa~0.base main_~pd2~0.base))} assume true; {812#(and (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0) (= main_~pa~0.base main_~pd2~0.base))} is VALID [2018-11-14 19:10:50,037 INFO L273 TraceCheckUtils]: 23: Hoare triple {812#(and (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0) (= main_~pa~0.base main_~pd2~0.base))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {813#(and (<= main_~i~0 |main_#t~mem11|) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:10:50,037 INFO L273 TraceCheckUtils]: 24: Hoare triple {813#(and (<= main_~i~0 |main_#t~mem11|) (= main_~pd2~0.offset 0))} assume !(~i~0 <= #t~mem11);havoc #t~mem11; {804#false} is VALID [2018-11-14 19:10:50,037 INFO L256 TraceCheckUtils]: 25: Hoare triple {804#false} call #t~ret13 := check(~pd2~0.base, ~pd2~0.offset, ~i~0); {803#true} is VALID [2018-11-14 19:10:50,038 INFO L273 TraceCheckUtils]: 26: Hoare triple {803#true} ~s1.base, ~s1.offset := #in~s1.base, #in~s1.offset;~i := #in~i;call #t~mem6 := read~int(~s1.base, ~s1.offset + 8 + ~i * 4, 4);#res := (if #t~mem6 == ~i then 1 else 0);havoc #t~mem6; {803#true} is VALID [2018-11-14 19:10:50,038 INFO L273 TraceCheckUtils]: 27: Hoare triple {803#true} assume true; {803#true} is VALID [2018-11-14 19:10:50,038 INFO L268 TraceCheckUtils]: 28: Hoare quadruple {803#true} {804#false} #60#return; {804#false} is VALID [2018-11-14 19:10:50,038 INFO L273 TraceCheckUtils]: 29: Hoare triple {804#false} assume -2147483648 <= #t~ret13 && #t~ret13 <= 2147483647; {804#false} is VALID [2018-11-14 19:10:50,038 INFO L273 TraceCheckUtils]: 30: Hoare triple {804#false} assume #t~ret13 == 0;havoc #t~ret13; {804#false} is VALID [2018-11-14 19:10:50,039 INFO L273 TraceCheckUtils]: 31: Hoare triple {804#false} assume !false; {804#false} is VALID [2018-11-14 19:10:50,042 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-14 19:10:50,042 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-14 19:10:50,042 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [11] imperfect sequences [] total 11 [2018-11-14 19:10:50,043 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 32 [2018-11-14 19:10:50,043 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 19:10:50,043 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states. [2018-11-14 19:10:50,157 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 29 edges. 29 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:10:50,157 INFO L459 AbstractCegarLoop]: Interpolant automaton has 11 states [2018-11-14 19:10:50,157 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2018-11-14 19:10:50,158 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=21, Invalid=89, Unknown=0, NotChecked=0, Total=110 [2018-11-14 19:10:50,158 INFO L87 Difference]: Start difference. First operand 39 states and 43 transitions. Second operand 11 states. [2018-11-14 19:10:51,677 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:51,677 INFO L93 Difference]: Finished difference Result 58 states and 63 transitions. [2018-11-14 19:10:51,677 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2018-11-14 19:10:51,678 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 32 [2018-11-14 19:10:51,678 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 19:10:51,678 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2018-11-14 19:10:51,681 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 60 transitions. [2018-11-14 19:10:51,682 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2018-11-14 19:10:51,684 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 60 transitions. [2018-11-14 19:10:51,685 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states and 60 transitions. [2018-11-14 19:10:51,784 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 60 edges. 60 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:10:51,786 INFO L225 Difference]: With dead ends: 58 [2018-11-14 19:10:51,786 INFO L226 Difference]: Without dead ends: 50 [2018-11-14 19:10:51,787 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 20 GetRequests, 2 SyntacticMatches, 3 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 24 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=55, Invalid=217, Unknown=0, NotChecked=0, Total=272 [2018-11-14 19:10:51,787 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 50 states. [2018-11-14 19:10:51,957 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 50 to 37. [2018-11-14 19:10:51,957 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 19:10:51,957 INFO L82 GeneralOperation]: Start isEquivalent. First operand 50 states. Second operand 37 states. [2018-11-14 19:10:51,958 INFO L74 IsIncluded]: Start isIncluded. First operand 50 states. Second operand 37 states. [2018-11-14 19:10:51,958 INFO L87 Difference]: Start difference. First operand 50 states. Second operand 37 states. [2018-11-14 19:10:51,962 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:51,962 INFO L93 Difference]: Finished difference Result 50 states and 55 transitions. [2018-11-14 19:10:51,962 INFO L276 IsEmpty]: Start isEmpty. Operand 50 states and 55 transitions. [2018-11-14 19:10:51,963 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:51,963 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:51,963 INFO L74 IsIncluded]: Start isIncluded. First operand 37 states. Second operand 50 states. [2018-11-14 19:10:51,964 INFO L87 Difference]: Start difference. First operand 37 states. Second operand 50 states. [2018-11-14 19:10:51,967 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:51,967 INFO L93 Difference]: Finished difference Result 50 states and 55 transitions. [2018-11-14 19:10:51,967 INFO L276 IsEmpty]: Start isEmpty. Operand 50 states and 55 transitions. [2018-11-14 19:10:51,968 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:51,968 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:51,968 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 19:10:51,969 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 19:10:51,969 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 37 states. [2018-11-14 19:10:51,971 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 37 states to 37 states and 41 transitions. [2018-11-14 19:10:51,971 INFO L78 Accepts]: Start accepts. Automaton has 37 states and 41 transitions. Word has length 32 [2018-11-14 19:10:51,971 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 19:10:51,971 INFO L480 AbstractCegarLoop]: Abstraction has 37 states and 41 transitions. [2018-11-14 19:10:51,972 INFO L481 AbstractCegarLoop]: Interpolant automaton has 11 states. [2018-11-14 19:10:51,972 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 41 transitions. [2018-11-14 19:10:51,973 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 36 [2018-11-14 19:10:51,973 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:10:51,973 INFO L375 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 19:10:51,973 INFO L423 AbstractCegarLoop]: === Iteration 5 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:10:51,974 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:10:51,974 INFO L82 PathProgramCache]: Analyzing trace with hash -1823664487, now seen corresponding path program 1 times [2018-11-14 19:10:51,974 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:10:51,974 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:10:51,975 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:51,975 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 19:10:51,975 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:52,009 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:52,452 INFO L256 TraceCheckUtils]: 0: Hoare triple {1058#true} call ULTIMATE.init(); {1058#true} is VALID [2018-11-14 19:10:52,453 INFO L273 TraceCheckUtils]: 1: Hoare triple {1058#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];call ~#d1~0.base, ~#d1~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base); {1060#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:10:52,454 INFO L273 TraceCheckUtils]: 2: Hoare triple {1060#(= 0 |~#d1~0.offset|)} assume true; {1060#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:10:52,454 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1060#(= 0 |~#d1~0.offset|)} {1058#true} #62#return; {1060#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:10:52,455 INFO L256 TraceCheckUtils]: 4: Hoare triple {1060#(= 0 |~#d1~0.offset|)} call #t~ret14 := main(); {1060#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:10:52,455 INFO L256 TraceCheckUtils]: 5: Hoare triple {1060#(= 0 |~#d1~0.offset|)} call init(); {1058#true} is VALID [2018-11-14 19:10:52,456 INFO L273 TraceCheckUtils]: 6: Hoare triple {1058#true} assume -2147483648 <= #t~nondet0 && #t~nondet0 <= 2147483647;call write~int(#t~nondet0, ~#d1~0.base, ~#d1~0.offset + 0, 4);havoc #t~nondet0;assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;call write~int(#t~nondet1, ~#d1~0.base, ~#d1~0.offset + 4, 4);havoc #t~nondet1;assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;call write~int(#t~nondet2, ~#d2~0.base, ~#d2~0.offset + 0, 4);havoc #t~nondet2;assume -2147483648 <= #t~nondet3 && #t~nondet3 <= 2147483647;call write~int(#t~nondet3, ~#d2~0.base, ~#d2~0.offset + 4, 4);havoc #t~nondet3; {1058#true} is VALID [2018-11-14 19:10:52,456 INFO L273 TraceCheckUtils]: 7: Hoare triple {1058#true} assume true; {1058#true} is VALID [2018-11-14 19:10:52,457 INFO L268 TraceCheckUtils]: 8: Hoare quadruple {1058#true} {1060#(= 0 |~#d1~0.offset|)} #54#return; {1060#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:10:52,457 INFO L256 TraceCheckUtils]: 9: Hoare triple {1060#(= 0 |~#d1~0.offset|)} call #t~ret7.base, #t~ret7.offset := get_dummy(); {1058#true} is VALID [2018-11-14 19:10:52,458 INFO L273 TraceCheckUtils]: 10: Hoare triple {1058#true} assume #t~nondet4 % 256 != 0;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {1061#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#t~ite5.base|))} is VALID [2018-11-14 19:10:52,459 INFO L273 TraceCheckUtils]: 11: Hoare triple {1061#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#t~ite5.base|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {1062#(and (= |get_dummy_#res.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#res.base|))} is VALID [2018-11-14 19:10:52,459 INFO L273 TraceCheckUtils]: 12: Hoare triple {1062#(and (= |get_dummy_#res.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#res.base|))} assume true; {1062#(and (= |get_dummy_#res.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#res.base|))} is VALID [2018-11-14 19:10:52,460 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {1062#(and (= |get_dummy_#res.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#res.base|))} {1060#(= 0 |~#d1~0.offset|)} #56#return; {1063#(and (= 0 |main_#t~ret7.offset|) (= |~#d1~0.base| |main_#t~ret7.base|) (= 0 |~#d1~0.offset|))} is VALID [2018-11-14 19:10:52,461 INFO L273 TraceCheckUtils]: 14: Hoare triple {1063#(and (= 0 |main_#t~ret7.offset|) (= |~#d1~0.base| |main_#t~ret7.base|) (= 0 |~#d1~0.offset|))} ~pd1~0.base, ~pd1~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {1064#(and (= 0 main_~pd1~0.offset) (= 0 |~#d1~0.offset|) (= |~#d1~0.base| main_~pd1~0.base))} is VALID [2018-11-14 19:10:52,461 INFO L256 TraceCheckUtils]: 15: Hoare triple {1064#(and (= 0 main_~pd1~0.offset) (= 0 |~#d1~0.offset|) (= |~#d1~0.base| main_~pd1~0.base))} call #t~ret8.base, #t~ret8.offset := get_dummy(); {1058#true} is VALID [2018-11-14 19:10:52,461 INFO L273 TraceCheckUtils]: 16: Hoare triple {1058#true} assume #t~nondet4 % 256 != 0;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {1061#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#t~ite5.base|))} is VALID [2018-11-14 19:10:52,462 INFO L273 TraceCheckUtils]: 17: Hoare triple {1061#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#t~ite5.base|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {1062#(and (= |get_dummy_#res.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#res.base|))} is VALID [2018-11-14 19:10:52,462 INFO L273 TraceCheckUtils]: 18: Hoare triple {1062#(and (= |get_dummy_#res.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#res.base|))} assume true; {1062#(and (= |get_dummy_#res.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#res.base|))} is VALID [2018-11-14 19:10:52,464 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {1062#(and (= |get_dummy_#res.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#res.base|))} {1064#(and (= 0 main_~pd1~0.offset) (= 0 |~#d1~0.offset|) (= |~#d1~0.base| main_~pd1~0.base))} #58#return; {1065#(and (= 0 main_~pd1~0.offset) (= |main_#t~ret8.base| main_~pd1~0.base) (= 0 |main_#t~ret8.offset|))} is VALID [2018-11-14 19:10:52,465 INFO L273 TraceCheckUtils]: 20: Hoare triple {1065#(and (= 0 main_~pd1~0.offset) (= |main_#t~ret8.base| main_~pd1~0.base) (= 0 |main_#t~ret8.offset|))} ~pd2~0.base, ~pd2~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset;assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647;~i~0 := #t~nondet9;havoc #t~nondet9; {1066#(and (= 0 main_~pd1~0.offset) (= main_~pd2~0.offset 0) (= main_~pd2~0.base main_~pd1~0.base))} is VALID [2018-11-14 19:10:52,467 INFO L273 TraceCheckUtils]: 21: Hoare triple {1066#(and (= 0 main_~pd1~0.offset) (= main_~pd2~0.offset 0) (= main_~pd2~0.base main_~pd1~0.base))} assume (((~pd1~0.base != 0 || ~pd1~0.offset != 0) && ~pd1~0.base == ~pd2~0.base && ~pd1~0.offset == ~pd2~0.offset) && ~i~0 >= 0) && ~i~0 < 10;call write~int(~i~0, ~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~pa~0.base, ~pa~0.offset := ~pd1~0.base, ~pd1~0.offset + 8 + ~i~0 * 4;call #t~mem10 := read~int(~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~i~0 := #t~mem10 - 10;havoc #t~mem10; {1067#(and (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0) (= main_~pa~0.base main_~pd2~0.base))} is VALID [2018-11-14 19:10:52,468 INFO L273 TraceCheckUtils]: 22: Hoare triple {1067#(and (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0) (= main_~pa~0.base main_~pd2~0.base))} assume true; {1067#(and (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0) (= main_~pa~0.base main_~pd2~0.base))} is VALID [2018-11-14 19:10:52,469 INFO L273 TraceCheckUtils]: 23: Hoare triple {1067#(and (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0) (= main_~pa~0.base main_~pd2~0.base))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {1068#(and (<= (+ main_~i~0 1) |main_#t~mem11|) (= |main_#t~mem11| (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:10:52,470 INFO L273 TraceCheckUtils]: 24: Hoare triple {1068#(and (<= (+ main_~i~0 1) |main_#t~mem11|) (= |main_#t~mem11| (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {1069#(and (<= main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:10:52,480 INFO L273 TraceCheckUtils]: 25: Hoare triple {1069#(and (<= main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} assume true; {1069#(and (<= main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:10:52,481 INFO L273 TraceCheckUtils]: 26: Hoare triple {1069#(and (<= main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {1070#(and (<= main_~i~0 |main_#t~mem11|) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:10:52,481 INFO L273 TraceCheckUtils]: 27: Hoare triple {1070#(and (<= main_~i~0 |main_#t~mem11|) (= main_~pd2~0.offset 0))} assume !(~i~0 <= #t~mem11);havoc #t~mem11; {1059#false} is VALID [2018-11-14 19:10:52,482 INFO L256 TraceCheckUtils]: 28: Hoare triple {1059#false} call #t~ret13 := check(~pd2~0.base, ~pd2~0.offset, ~i~0); {1058#true} is VALID [2018-11-14 19:10:52,482 INFO L273 TraceCheckUtils]: 29: Hoare triple {1058#true} ~s1.base, ~s1.offset := #in~s1.base, #in~s1.offset;~i := #in~i;call #t~mem6 := read~int(~s1.base, ~s1.offset + 8 + ~i * 4, 4);#res := (if #t~mem6 == ~i then 1 else 0);havoc #t~mem6; {1058#true} is VALID [2018-11-14 19:10:52,482 INFO L273 TraceCheckUtils]: 30: Hoare triple {1058#true} assume true; {1058#true} is VALID [2018-11-14 19:10:52,482 INFO L268 TraceCheckUtils]: 31: Hoare quadruple {1058#true} {1059#false} #60#return; {1059#false} is VALID [2018-11-14 19:10:52,482 INFO L273 TraceCheckUtils]: 32: Hoare triple {1059#false} assume -2147483648 <= #t~ret13 && #t~ret13 <= 2147483647; {1059#false} is VALID [2018-11-14 19:10:52,483 INFO L273 TraceCheckUtils]: 33: Hoare triple {1059#false} assume #t~ret13 == 0;havoc #t~ret13; {1059#false} is VALID [2018-11-14 19:10:52,483 INFO L273 TraceCheckUtils]: 34: Hoare triple {1059#false} assume !false; {1059#false} is VALID [2018-11-14 19:10:52,485 INFO L134 CoverageAnalysis]: Checked inductivity of 7 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-14 19:10:52,485 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-14 19:10:52,485 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:52,502 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 19:10:52,527 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:52,551 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:52,555 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-14 19:10:52,824 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 13 [2018-11-14 19:10:52,833 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 13 treesize of output 12 [2018-11-14 19:10:52,835 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 19:10:52,841 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:10:52,856 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-2 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2018-11-14 19:10:52,857 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 3 variables, input treesize:44, output treesize:40 [2018-11-14 19:10:52,863 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 19:10:53,203 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 32 [2018-11-14 19:10:53,216 INFO L682 Elim1Store]: detected equality via solver [2018-11-14 19:10:53,218 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 21 [2018-11-14 19:10:53,221 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 19:10:53,231 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:10:53,260 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:10:53,260 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 4 variables, input treesize:44, output treesize:5 [2018-11-14 19:10:53,262 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 19:10:53,381 INFO L256 TraceCheckUtils]: 0: Hoare triple {1058#true} call ULTIMATE.init(); {1058#true} is VALID [2018-11-14 19:10:53,383 INFO L273 TraceCheckUtils]: 1: Hoare triple {1058#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];call ~#d1~0.base, ~#d1~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base); {1060#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:10:53,383 INFO L273 TraceCheckUtils]: 2: Hoare triple {1060#(= 0 |~#d1~0.offset|)} assume true; {1060#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:10:53,385 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1060#(= 0 |~#d1~0.offset|)} {1058#true} #62#return; {1060#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:10:53,387 INFO L256 TraceCheckUtils]: 4: Hoare triple {1060#(= 0 |~#d1~0.offset|)} call #t~ret14 := main(); {1060#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:10:53,389 INFO L256 TraceCheckUtils]: 5: Hoare triple {1060#(= 0 |~#d1~0.offset|)} call init(); {1060#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:10:53,389 INFO L273 TraceCheckUtils]: 6: Hoare triple {1060#(= 0 |~#d1~0.offset|)} assume -2147483648 <= #t~nondet0 && #t~nondet0 <= 2147483647;call write~int(#t~nondet0, ~#d1~0.base, ~#d1~0.offset + 0, 4);havoc #t~nondet0;assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;call write~int(#t~nondet1, ~#d1~0.base, ~#d1~0.offset + 4, 4);havoc #t~nondet1;assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;call write~int(#t~nondet2, ~#d2~0.base, ~#d2~0.offset + 0, 4);havoc #t~nondet2;assume -2147483648 <= #t~nondet3 && #t~nondet3 <= 2147483647;call write~int(#t~nondet3, ~#d2~0.base, ~#d2~0.offset + 4, 4);havoc #t~nondet3; {1060#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:10:53,392 INFO L273 TraceCheckUtils]: 7: Hoare triple {1060#(= 0 |~#d1~0.offset|)} assume true; {1060#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:10:53,394 INFO L268 TraceCheckUtils]: 8: Hoare quadruple {1060#(= 0 |~#d1~0.offset|)} {1060#(= 0 |~#d1~0.offset|)} #54#return; {1060#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:10:53,395 INFO L256 TraceCheckUtils]: 9: Hoare triple {1060#(= 0 |~#d1~0.offset|)} call #t~ret7.base, #t~ret7.offset := get_dummy(); {1060#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:10:53,396 INFO L273 TraceCheckUtils]: 10: Hoare triple {1060#(= 0 |~#d1~0.offset|)} assume #t~nondet4 % 256 != 0;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {1104#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= 0 |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#t~ite5.base|))} is VALID [2018-11-14 19:10:53,401 INFO L273 TraceCheckUtils]: 11: Hoare triple {1104#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= 0 |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#t~ite5.base|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {1108#(and (= 0 |~#d1~0.offset|) (= |get_dummy_#res.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#res.base|))} is VALID [2018-11-14 19:10:53,401 INFO L273 TraceCheckUtils]: 12: Hoare triple {1108#(and (= 0 |~#d1~0.offset|) (= |get_dummy_#res.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#res.base|))} assume true; {1108#(and (= 0 |~#d1~0.offset|) (= |get_dummy_#res.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#res.base|))} is VALID [2018-11-14 19:10:53,406 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {1108#(and (= 0 |~#d1~0.offset|) (= |get_dummy_#res.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#res.base|))} {1060#(= 0 |~#d1~0.offset|)} #56#return; {1063#(and (= 0 |main_#t~ret7.offset|) (= |~#d1~0.base| |main_#t~ret7.base|) (= 0 |~#d1~0.offset|))} is VALID [2018-11-14 19:10:53,409 INFO L273 TraceCheckUtils]: 14: Hoare triple {1063#(and (= 0 |main_#t~ret7.offset|) (= |~#d1~0.base| |main_#t~ret7.base|) (= 0 |~#d1~0.offset|))} ~pd1~0.base, ~pd1~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {1064#(and (= 0 main_~pd1~0.offset) (= 0 |~#d1~0.offset|) (= |~#d1~0.base| main_~pd1~0.base))} is VALID [2018-11-14 19:10:53,412 INFO L256 TraceCheckUtils]: 15: Hoare triple {1064#(and (= 0 main_~pd1~0.offset) (= 0 |~#d1~0.offset|) (= |~#d1~0.base| main_~pd1~0.base))} call #t~ret8.base, #t~ret8.offset := get_dummy(); {1060#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:10:53,412 INFO L273 TraceCheckUtils]: 16: Hoare triple {1060#(= 0 |~#d1~0.offset|)} assume #t~nondet4 % 256 != 0;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {1124#(and (= 0 |~#d1~0.offset|) (<= |~#d1~0.offset| |get_dummy_#t~ite5.offset|) (= |~#d1~0.base| |get_dummy_#t~ite5.base|))} is VALID [2018-11-14 19:10:53,414 INFO L273 TraceCheckUtils]: 17: Hoare triple {1124#(and (= 0 |~#d1~0.offset|) (<= |~#d1~0.offset| |get_dummy_#t~ite5.offset|) (= |~#d1~0.base| |get_dummy_#t~ite5.base|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {1128#(and (= 0 |~#d1~0.offset|) (<= |~#d1~0.offset| |get_dummy_#res.offset|) (= |~#d1~0.base| |get_dummy_#res.base|))} is VALID [2018-11-14 19:10:53,414 INFO L273 TraceCheckUtils]: 18: Hoare triple {1128#(and (= 0 |~#d1~0.offset|) (<= |~#d1~0.offset| |get_dummy_#res.offset|) (= |~#d1~0.base| |get_dummy_#res.base|))} assume true; {1128#(and (= 0 |~#d1~0.offset|) (<= |~#d1~0.offset| |get_dummy_#res.offset|) (= |~#d1~0.base| |get_dummy_#res.base|))} is VALID [2018-11-14 19:10:53,417 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {1128#(and (= 0 |~#d1~0.offset|) (<= |~#d1~0.offset| |get_dummy_#res.offset|) (= |~#d1~0.base| |get_dummy_#res.base|))} {1064#(and (= 0 main_~pd1~0.offset) (= 0 |~#d1~0.offset|) (= |~#d1~0.base| main_~pd1~0.base))} #58#return; {1135#(and (= 0 main_~pd1~0.offset) (= |main_#t~ret8.base| main_~pd1~0.base) (<= 0 |main_#t~ret8.offset|))} is VALID [2018-11-14 19:10:53,417 INFO L273 TraceCheckUtils]: 20: Hoare triple {1135#(and (= 0 main_~pd1~0.offset) (= |main_#t~ret8.base| main_~pd1~0.base) (<= 0 |main_#t~ret8.offset|))} ~pd2~0.base, ~pd2~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset;assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647;~i~0 := #t~nondet9;havoc #t~nondet9; {1139#(and (= 0 main_~pd1~0.offset) (<= 0 main_~pd2~0.offset) (= main_~pd2~0.base main_~pd1~0.base))} is VALID [2018-11-14 19:10:53,419 INFO L273 TraceCheckUtils]: 21: Hoare triple {1139#(and (= 0 main_~pd1~0.offset) (<= 0 main_~pd2~0.offset) (= main_~pd2~0.base main_~pd1~0.base))} assume (((~pd1~0.base != 0 || ~pd1~0.offset != 0) && ~pd1~0.base == ~pd2~0.base && ~pd1~0.offset == ~pd2~0.offset) && ~i~0 >= 0) && ~i~0 < 10;call write~int(~i~0, ~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~pa~0.base, ~pa~0.offset := ~pd1~0.base, ~pd1~0.offset + 8 + ~i~0 * 4;call #t~mem10 := read~int(~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~i~0 := #t~mem10 - 10;havoc #t~mem10; {1143#(exists ((main_~pd2~0.offset Int) (v_main_~i~0_10 Int)) (and (<= main_~pd2~0.offset 0) (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_10) 8))) (= v_main_~i~0_10 (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_10) 8))) (= (+ (* 4 v_main_~i~0_10) 8) main_~pa~0.offset) (<= 0 main_~pd2~0.offset)))} is VALID [2018-11-14 19:10:53,420 INFO L273 TraceCheckUtils]: 22: Hoare triple {1143#(exists ((main_~pd2~0.offset Int) (v_main_~i~0_10 Int)) (and (<= main_~pd2~0.offset 0) (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_10) 8))) (= v_main_~i~0_10 (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_10) 8))) (= (+ (* 4 v_main_~i~0_10) 8) main_~pa~0.offset) (<= 0 main_~pd2~0.offset)))} assume true; {1143#(exists ((main_~pd2~0.offset Int) (v_main_~i~0_10 Int)) (and (<= main_~pd2~0.offset 0) (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_10) 8))) (= v_main_~i~0_10 (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_10) 8))) (= (+ (* 4 v_main_~i~0_10) 8) main_~pa~0.offset) (<= 0 main_~pd2~0.offset)))} is VALID [2018-11-14 19:10:53,420 INFO L273 TraceCheckUtils]: 23: Hoare triple {1143#(exists ((main_~pd2~0.offset Int) (v_main_~i~0_10 Int)) (and (<= main_~pd2~0.offset 0) (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_10) 8))) (= v_main_~i~0_10 (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_10) 8))) (= (+ (* 4 v_main_~i~0_10) 8) main_~pa~0.offset) (<= 0 main_~pd2~0.offset)))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {1143#(exists ((main_~pd2~0.offset Int) (v_main_~i~0_10 Int)) (and (<= main_~pd2~0.offset 0) (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_10) 8))) (= v_main_~i~0_10 (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_10) 8))) (= (+ (* 4 v_main_~i~0_10) 8) main_~pa~0.offset) (<= 0 main_~pd2~0.offset)))} is VALID [2018-11-14 19:10:53,424 INFO L273 TraceCheckUtils]: 24: Hoare triple {1143#(exists ((main_~pd2~0.offset Int) (v_main_~i~0_10 Int)) (and (<= main_~pd2~0.offset 0) (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_10) 8))) (= v_main_~i~0_10 (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_10) 8))) (= (+ (* 4 v_main_~i~0_10) 8) main_~pa~0.offset) (<= 0 main_~pd2~0.offset)))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {1153#(exists ((main_~pd2~0.offset Int) (v_main_~i~0_10 Int)) (and (<= main_~pd2~0.offset 0) (= v_main_~i~0_10 (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_10) 8))) (= (+ (* 4 v_main_~i~0_10) 8) main_~pa~0.offset) (<= (+ main_~i~0 9) (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_10) 8))) (<= 0 main_~pd2~0.offset)))} is VALID [2018-11-14 19:10:53,425 INFO L273 TraceCheckUtils]: 25: Hoare triple {1153#(exists ((main_~pd2~0.offset Int) (v_main_~i~0_10 Int)) (and (<= main_~pd2~0.offset 0) (= v_main_~i~0_10 (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_10) 8))) (= (+ (* 4 v_main_~i~0_10) 8) main_~pa~0.offset) (<= (+ main_~i~0 9) (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_10) 8))) (<= 0 main_~pd2~0.offset)))} assume true; {1153#(exists ((main_~pd2~0.offset Int) (v_main_~i~0_10 Int)) (and (<= main_~pd2~0.offset 0) (= v_main_~i~0_10 (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_10) 8))) (= (+ (* 4 v_main_~i~0_10) 8) main_~pa~0.offset) (<= (+ main_~i~0 9) (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_10) 8))) (<= 0 main_~pd2~0.offset)))} is VALID [2018-11-14 19:10:53,426 INFO L273 TraceCheckUtils]: 26: Hoare triple {1153#(exists ((main_~pd2~0.offset Int) (v_main_~i~0_10 Int)) (and (<= main_~pd2~0.offset 0) (= v_main_~i~0_10 (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_10) 8))) (= (+ (* 4 v_main_~i~0_10) 8) main_~pa~0.offset) (<= (+ main_~i~0 9) (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_10) 8))) (<= 0 main_~pd2~0.offset)))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {1160#(<= (+ main_~i~0 9) |main_#t~mem11|)} is VALID [2018-11-14 19:10:53,426 INFO L273 TraceCheckUtils]: 27: Hoare triple {1160#(<= (+ main_~i~0 9) |main_#t~mem11|)} assume !(~i~0 <= #t~mem11);havoc #t~mem11; {1059#false} is VALID [2018-11-14 19:10:53,426 INFO L256 TraceCheckUtils]: 28: Hoare triple {1059#false} call #t~ret13 := check(~pd2~0.base, ~pd2~0.offset, ~i~0); {1059#false} is VALID [2018-11-14 19:10:53,427 INFO L273 TraceCheckUtils]: 29: Hoare triple {1059#false} ~s1.base, ~s1.offset := #in~s1.base, #in~s1.offset;~i := #in~i;call #t~mem6 := read~int(~s1.base, ~s1.offset + 8 + ~i * 4, 4);#res := (if #t~mem6 == ~i then 1 else 0);havoc #t~mem6; {1059#false} is VALID [2018-11-14 19:10:53,427 INFO L273 TraceCheckUtils]: 30: Hoare triple {1059#false} assume true; {1059#false} is VALID [2018-11-14 19:10:53,427 INFO L268 TraceCheckUtils]: 31: Hoare quadruple {1059#false} {1059#false} #60#return; {1059#false} is VALID [2018-11-14 19:10:53,427 INFO L273 TraceCheckUtils]: 32: Hoare triple {1059#false} assume -2147483648 <= #t~ret13 && #t~ret13 <= 2147483647; {1059#false} is VALID [2018-11-14 19:10:53,428 INFO L273 TraceCheckUtils]: 33: Hoare triple {1059#false} assume #t~ret13 == 0;havoc #t~ret13; {1059#false} is VALID [2018-11-14 19:10:53,428 INFO L273 TraceCheckUtils]: 34: Hoare triple {1059#false} assume !false; {1059#false} is VALID [2018-11-14 19:10:53,432 INFO L134 CoverageAnalysis]: Checked inductivity of 7 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2018-11-14 19:10:53,453 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-14 19:10:53,454 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 14] total 22 [2018-11-14 19:10:53,456 INFO L78 Accepts]: Start accepts. Automaton has 22 states. Word has length 35 [2018-11-14 19:10:53,457 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 19:10:53,457 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 22 states. [2018-11-14 19:10:53,539 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:53,539 INFO L459 AbstractCegarLoop]: Interpolant automaton has 22 states [2018-11-14 19:10:53,540 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 22 interpolants. [2018-11-14 19:10:53,540 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=57, Invalid=405, Unknown=0, NotChecked=0, Total=462 [2018-11-14 19:10:53,541 INFO L87 Difference]: Start difference. First operand 37 states and 41 transitions. Second operand 22 states. [2018-11-14 19:10:55,442 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:55,442 INFO L93 Difference]: Finished difference Result 66 states and 72 transitions. [2018-11-14 19:10:55,442 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2018-11-14 19:10:55,442 INFO L78 Accepts]: Start accepts. Automaton has 22 states. Word has length 35 [2018-11-14 19:10:55,443 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 19:10:55,443 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 22 states. [2018-11-14 19:10:55,446 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 69 transitions. [2018-11-14 19:10:55,446 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 22 states. [2018-11-14 19:10:55,449 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 69 transitions. [2018-11-14 19:10:55,449 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 15 states and 69 transitions. [2018-11-14 19:10:55,708 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 69 edges. 69 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:10:55,710 INFO L225 Difference]: With dead ends: 66 [2018-11-14 19:10:55,711 INFO L226 Difference]: Without dead ends: 58 [2018-11-14 19:10:55,711 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 58 GetRequests, 25 SyntacticMatches, 5 SemanticMatches, 28 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 131 ImplicationChecksByTransitivity, 1.0s TimeCoverageRelationStatistics Valid=144, Invalid=726, Unknown=0, NotChecked=0, Total=870 [2018-11-14 19:10:55,712 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 58 states. [2018-11-14 19:10:55,825 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 58 to 45. [2018-11-14 19:10:55,826 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 19:10:55,826 INFO L82 GeneralOperation]: Start isEquivalent. First operand 58 states. Second operand 45 states. [2018-11-14 19:10:55,826 INFO L74 IsIncluded]: Start isIncluded. First operand 58 states. Second operand 45 states. [2018-11-14 19:10:55,826 INFO L87 Difference]: Start difference. First operand 58 states. Second operand 45 states. [2018-11-14 19:10:55,830 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:55,830 INFO L93 Difference]: Finished difference Result 58 states and 63 transitions. [2018-11-14 19:10:55,831 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 63 transitions. [2018-11-14 19:10:55,831 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:55,832 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:55,832 INFO L74 IsIncluded]: Start isIncluded. First operand 45 states. Second operand 58 states. [2018-11-14 19:10:55,832 INFO L87 Difference]: Start difference. First operand 45 states. Second operand 58 states. [2018-11-14 19:10:55,835 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:10:55,835 INFO L93 Difference]: Finished difference Result 58 states and 63 transitions. [2018-11-14 19:10:55,835 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 63 transitions. [2018-11-14 19:10:55,836 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:10:55,836 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:10:55,836 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 19:10:55,836 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 19:10:55,836 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 45 states. [2018-11-14 19:10:55,838 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 45 states to 45 states and 49 transitions. [2018-11-14 19:10:55,839 INFO L78 Accepts]: Start accepts. Automaton has 45 states and 49 transitions. Word has length 35 [2018-11-14 19:10:55,839 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 19:10:55,839 INFO L480 AbstractCegarLoop]: Abstraction has 45 states and 49 transitions. [2018-11-14 19:10:55,839 INFO L481 AbstractCegarLoop]: Interpolant automaton has 22 states. [2018-11-14 19:10:55,839 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 49 transitions. [2018-11-14 19:10:55,840 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 36 [2018-11-14 19:10:55,841 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:10:55,841 INFO L375 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 19:10:55,841 INFO L423 AbstractCegarLoop]: === Iteration 6 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:10:55,841 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:10:55,841 INFO L82 PathProgramCache]: Analyzing trace with hash 922907677, now seen corresponding path program 1 times [2018-11-14 19:10:55,842 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:10:55,842 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:10:55,842 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:55,843 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 19:10:55,843 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:10:55,860 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:56,330 INFO L256 TraceCheckUtils]: 0: Hoare triple {1466#true} call ULTIMATE.init(); {1466#true} is VALID [2018-11-14 19:10:56,331 INFO L273 TraceCheckUtils]: 1: Hoare triple {1466#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];call ~#d1~0.base, ~#d1~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base); {1468#(= 0 |~#d2~0.offset|)} is VALID [2018-11-14 19:10:56,332 INFO L273 TraceCheckUtils]: 2: Hoare triple {1468#(= 0 |~#d2~0.offset|)} assume true; {1468#(= 0 |~#d2~0.offset|)} is VALID [2018-11-14 19:10:56,333 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1468#(= 0 |~#d2~0.offset|)} {1466#true} #62#return; {1468#(= 0 |~#d2~0.offset|)} is VALID [2018-11-14 19:10:56,334 INFO L256 TraceCheckUtils]: 4: Hoare triple {1468#(= 0 |~#d2~0.offset|)} call #t~ret14 := main(); {1468#(= 0 |~#d2~0.offset|)} is VALID [2018-11-14 19:10:56,335 INFO L256 TraceCheckUtils]: 5: Hoare triple {1468#(= 0 |~#d2~0.offset|)} call init(); {1466#true} is VALID [2018-11-14 19:10:56,335 INFO L273 TraceCheckUtils]: 6: Hoare triple {1466#true} assume -2147483648 <= #t~nondet0 && #t~nondet0 <= 2147483647;call write~int(#t~nondet0, ~#d1~0.base, ~#d1~0.offset + 0, 4);havoc #t~nondet0;assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;call write~int(#t~nondet1, ~#d1~0.base, ~#d1~0.offset + 4, 4);havoc #t~nondet1;assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;call write~int(#t~nondet2, ~#d2~0.base, ~#d2~0.offset + 0, 4);havoc #t~nondet2;assume -2147483648 <= #t~nondet3 && #t~nondet3 <= 2147483647;call write~int(#t~nondet3, ~#d2~0.base, ~#d2~0.offset + 4, 4);havoc #t~nondet3; {1466#true} is VALID [2018-11-14 19:10:56,335 INFO L273 TraceCheckUtils]: 7: Hoare triple {1466#true} assume true; {1466#true} is VALID [2018-11-14 19:10:56,336 INFO L268 TraceCheckUtils]: 8: Hoare quadruple {1466#true} {1468#(= 0 |~#d2~0.offset|)} #54#return; {1468#(= 0 |~#d2~0.offset|)} is VALID [2018-11-14 19:10:56,337 INFO L256 TraceCheckUtils]: 9: Hoare triple {1468#(= 0 |~#d2~0.offset|)} call #t~ret7.base, #t~ret7.offset := get_dummy(); {1466#true} is VALID [2018-11-14 19:10:56,337 INFO L273 TraceCheckUtils]: 10: Hoare triple {1466#true} assume !(#t~nondet4 % 256 != 0);#t~ite5.base, #t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {1469#(and (= |~#d2~0.base| |get_dummy_#t~ite5.base|) (= |get_dummy_#t~ite5.offset| |~#d2~0.offset|))} is VALID [2018-11-14 19:10:56,338 INFO L273 TraceCheckUtils]: 11: Hoare triple {1469#(and (= |~#d2~0.base| |get_dummy_#t~ite5.base|) (= |get_dummy_#t~ite5.offset| |~#d2~0.offset|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {1470#(and (= |get_dummy_#res.offset| |~#d2~0.offset|) (= |~#d2~0.base| |get_dummy_#res.base|))} is VALID [2018-11-14 19:10:56,339 INFO L273 TraceCheckUtils]: 12: Hoare triple {1470#(and (= |get_dummy_#res.offset| |~#d2~0.offset|) (= |~#d2~0.base| |get_dummy_#res.base|))} assume true; {1470#(and (= |get_dummy_#res.offset| |~#d2~0.offset|) (= |~#d2~0.base| |get_dummy_#res.base|))} is VALID [2018-11-14 19:10:56,340 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {1470#(and (= |get_dummy_#res.offset| |~#d2~0.offset|) (= |~#d2~0.base| |get_dummy_#res.base|))} {1468#(= 0 |~#d2~0.offset|)} #56#return; {1471#(and (= |~#d2~0.base| |main_#t~ret7.base|) (= 0 |main_#t~ret7.offset|) (= 0 |~#d2~0.offset|))} is VALID [2018-11-14 19:10:56,341 INFO L273 TraceCheckUtils]: 14: Hoare triple {1471#(and (= |~#d2~0.base| |main_#t~ret7.base|) (= 0 |main_#t~ret7.offset|) (= 0 |~#d2~0.offset|))} ~pd1~0.base, ~pd1~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {1472#(and (= |~#d2~0.base| main_~pd1~0.base) (= 0 |~#d2~0.offset|) (= 0 main_~pd1~0.offset))} is VALID [2018-11-14 19:10:56,341 INFO L256 TraceCheckUtils]: 15: Hoare triple {1472#(and (= |~#d2~0.base| main_~pd1~0.base) (= 0 |~#d2~0.offset|) (= 0 main_~pd1~0.offset))} call #t~ret8.base, #t~ret8.offset := get_dummy(); {1466#true} is VALID [2018-11-14 19:10:56,342 INFO L273 TraceCheckUtils]: 16: Hoare triple {1466#true} assume !(#t~nondet4 % 256 != 0);#t~ite5.base, #t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {1469#(and (= |~#d2~0.base| |get_dummy_#t~ite5.base|) (= |get_dummy_#t~ite5.offset| |~#d2~0.offset|))} is VALID [2018-11-14 19:10:56,343 INFO L273 TraceCheckUtils]: 17: Hoare triple {1469#(and (= |~#d2~0.base| |get_dummy_#t~ite5.base|) (= |get_dummy_#t~ite5.offset| |~#d2~0.offset|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {1470#(and (= |get_dummy_#res.offset| |~#d2~0.offset|) (= |~#d2~0.base| |get_dummy_#res.base|))} is VALID [2018-11-14 19:10:56,344 INFO L273 TraceCheckUtils]: 18: Hoare triple {1470#(and (= |get_dummy_#res.offset| |~#d2~0.offset|) (= |~#d2~0.base| |get_dummy_#res.base|))} assume true; {1470#(and (= |get_dummy_#res.offset| |~#d2~0.offset|) (= |~#d2~0.base| |get_dummy_#res.base|))} is VALID [2018-11-14 19:10:56,346 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {1470#(and (= |get_dummy_#res.offset| |~#d2~0.offset|) (= |~#d2~0.base| |get_dummy_#res.base|))} {1472#(and (= |~#d2~0.base| main_~pd1~0.base) (= 0 |~#d2~0.offset|) (= 0 main_~pd1~0.offset))} #58#return; {1473#(and (= 0 main_~pd1~0.offset) (= |main_#t~ret8.base| main_~pd1~0.base) (= 0 |main_#t~ret8.offset|))} is VALID [2018-11-14 19:10:56,347 INFO L273 TraceCheckUtils]: 20: Hoare triple {1473#(and (= 0 main_~pd1~0.offset) (= |main_#t~ret8.base| main_~pd1~0.base) (= 0 |main_#t~ret8.offset|))} ~pd2~0.base, ~pd2~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset;assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647;~i~0 := #t~nondet9;havoc #t~nondet9; {1474#(and (= 0 main_~pd1~0.offset) (= main_~pd2~0.offset 0) (= main_~pd2~0.base main_~pd1~0.base))} is VALID [2018-11-14 19:10:56,349 INFO L273 TraceCheckUtils]: 21: Hoare triple {1474#(and (= 0 main_~pd1~0.offset) (= main_~pd2~0.offset 0) (= main_~pd2~0.base main_~pd1~0.base))} assume (((~pd1~0.base != 0 || ~pd1~0.offset != 0) && ~pd1~0.base == ~pd2~0.base && ~pd1~0.offset == ~pd2~0.offset) && ~i~0 >= 0) && ~i~0 < 10;call write~int(~i~0, ~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~pa~0.base, ~pa~0.offset := ~pd1~0.base, ~pd1~0.offset + 8 + ~i~0 * 4;call #t~mem10 := read~int(~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~i~0 := #t~mem10 - 10;havoc #t~mem10; {1475#(and (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0) (= main_~pa~0.base main_~pd2~0.base))} is VALID [2018-11-14 19:10:56,350 INFO L273 TraceCheckUtils]: 22: Hoare triple {1475#(and (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0) (= main_~pa~0.base main_~pd2~0.base))} assume true; {1475#(and (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0) (= main_~pa~0.base main_~pd2~0.base))} is VALID [2018-11-14 19:10:56,351 INFO L273 TraceCheckUtils]: 23: Hoare triple {1475#(and (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0) (= main_~pa~0.base main_~pd2~0.base))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {1476#(and (<= (+ main_~i~0 1) |main_#t~mem11|) (= |main_#t~mem11| (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:10:56,353 INFO L273 TraceCheckUtils]: 24: Hoare triple {1476#(and (<= (+ main_~i~0 1) |main_#t~mem11|) (= |main_#t~mem11| (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {1477#(and (<= main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:10:56,356 INFO L273 TraceCheckUtils]: 25: Hoare triple {1477#(and (<= main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} assume true; {1477#(and (<= main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:10:56,359 INFO L273 TraceCheckUtils]: 26: Hoare triple {1477#(and (<= main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {1478#(and (<= main_~i~0 |main_#t~mem11|) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:10:56,362 INFO L273 TraceCheckUtils]: 27: Hoare triple {1478#(and (<= main_~i~0 |main_#t~mem11|) (= main_~pd2~0.offset 0))} assume !(~i~0 <= #t~mem11);havoc #t~mem11; {1467#false} is VALID [2018-11-14 19:10:56,362 INFO L256 TraceCheckUtils]: 28: Hoare triple {1467#false} call #t~ret13 := check(~pd2~0.base, ~pd2~0.offset, ~i~0); {1466#true} is VALID [2018-11-14 19:10:56,363 INFO L273 TraceCheckUtils]: 29: Hoare triple {1466#true} ~s1.base, ~s1.offset := #in~s1.base, #in~s1.offset;~i := #in~i;call #t~mem6 := read~int(~s1.base, ~s1.offset + 8 + ~i * 4, 4);#res := (if #t~mem6 == ~i then 1 else 0);havoc #t~mem6; {1466#true} is VALID [2018-11-14 19:10:56,363 INFO L273 TraceCheckUtils]: 30: Hoare triple {1466#true} assume true; {1466#true} is VALID [2018-11-14 19:10:56,363 INFO L268 TraceCheckUtils]: 31: Hoare quadruple {1466#true} {1467#false} #60#return; {1467#false} is VALID [2018-11-14 19:10:56,363 INFO L273 TraceCheckUtils]: 32: Hoare triple {1467#false} assume -2147483648 <= #t~ret13 && #t~ret13 <= 2147483647; {1467#false} is VALID [2018-11-14 19:10:56,364 INFO L273 TraceCheckUtils]: 33: Hoare triple {1467#false} assume #t~ret13 == 0;havoc #t~ret13; {1467#false} is VALID [2018-11-14 19:10:56,364 INFO L273 TraceCheckUtils]: 34: Hoare triple {1467#false} assume !false; {1467#false} is VALID [2018-11-14 19:10:56,367 INFO L134 CoverageAnalysis]: Checked inductivity of 7 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-14 19:10:56,367 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-14 19:10:56,367 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:56,376 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 19:10:56,417 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:56,458 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:10:56,461 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-14 19:10:57,003 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 13 [2018-11-14 19:10:57,007 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 13 treesize of output 12 [2018-11-14 19:10:57,009 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 19:10:57,012 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:10:57,031 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-2 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2018-11-14 19:10:57,032 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 3 variables, input treesize:44, output treesize:40 [2018-11-14 19:10:57,036 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 19:10:57,513 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 32 [2018-11-14 19:10:57,580 INFO L682 Elim1Store]: detected equality via solver [2018-11-14 19:10:57,600 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 21 [2018-11-14 19:10:57,625 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 19:10:57,720 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:10:57,793 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:10:57,793 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 4 variables, input treesize:44, output treesize:5 [2018-11-14 19:10:57,796 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 19:10:57,840 INFO L256 TraceCheckUtils]: 0: Hoare triple {1466#true} call ULTIMATE.init(); {1466#true} is VALID [2018-11-14 19:10:57,841 INFO L273 TraceCheckUtils]: 1: Hoare triple {1466#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];call ~#d1~0.base, ~#d1~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base); {1468#(= 0 |~#d2~0.offset|)} is VALID [2018-11-14 19:10:57,841 INFO L273 TraceCheckUtils]: 2: Hoare triple {1468#(= 0 |~#d2~0.offset|)} assume true; {1468#(= 0 |~#d2~0.offset|)} is VALID [2018-11-14 19:10:57,842 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1468#(= 0 |~#d2~0.offset|)} {1466#true} #62#return; {1468#(= 0 |~#d2~0.offset|)} is VALID [2018-11-14 19:10:57,842 INFO L256 TraceCheckUtils]: 4: Hoare triple {1468#(= 0 |~#d2~0.offset|)} call #t~ret14 := main(); {1468#(= 0 |~#d2~0.offset|)} is VALID [2018-11-14 19:10:57,842 INFO L256 TraceCheckUtils]: 5: Hoare triple {1468#(= 0 |~#d2~0.offset|)} call init(); {1468#(= 0 |~#d2~0.offset|)} is VALID [2018-11-14 19:10:57,843 INFO L273 TraceCheckUtils]: 6: Hoare triple {1468#(= 0 |~#d2~0.offset|)} assume -2147483648 <= #t~nondet0 && #t~nondet0 <= 2147483647;call write~int(#t~nondet0, ~#d1~0.base, ~#d1~0.offset + 0, 4);havoc #t~nondet0;assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;call write~int(#t~nondet1, ~#d1~0.base, ~#d1~0.offset + 4, 4);havoc #t~nondet1;assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;call write~int(#t~nondet2, ~#d2~0.base, ~#d2~0.offset + 0, 4);havoc #t~nondet2;assume -2147483648 <= #t~nondet3 && #t~nondet3 <= 2147483647;call write~int(#t~nondet3, ~#d2~0.base, ~#d2~0.offset + 4, 4);havoc #t~nondet3; {1468#(= 0 |~#d2~0.offset|)} is VALID [2018-11-14 19:10:57,843 INFO L273 TraceCheckUtils]: 7: Hoare triple {1468#(= 0 |~#d2~0.offset|)} assume true; {1468#(= 0 |~#d2~0.offset|)} is VALID [2018-11-14 19:10:57,844 INFO L268 TraceCheckUtils]: 8: Hoare quadruple {1468#(= 0 |~#d2~0.offset|)} {1468#(= 0 |~#d2~0.offset|)} #54#return; {1468#(= 0 |~#d2~0.offset|)} is VALID [2018-11-14 19:10:57,844 INFO L256 TraceCheckUtils]: 9: Hoare triple {1468#(= 0 |~#d2~0.offset|)} call #t~ret7.base, #t~ret7.offset := get_dummy(); {1468#(= 0 |~#d2~0.offset|)} is VALID [2018-11-14 19:10:57,845 INFO L273 TraceCheckUtils]: 10: Hoare triple {1468#(= 0 |~#d2~0.offset|)} assume !(#t~nondet4 % 256 != 0);#t~ite5.base, #t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {1512#(and (= 0 |~#d2~0.offset|) (= |~#d2~0.base| |get_dummy_#t~ite5.base|) (= |get_dummy_#t~ite5.offset| |~#d2~0.offset|))} is VALID [2018-11-14 19:10:57,846 INFO L273 TraceCheckUtils]: 11: Hoare triple {1512#(and (= 0 |~#d2~0.offset|) (= |~#d2~0.base| |get_dummy_#t~ite5.base|) (= |get_dummy_#t~ite5.offset| |~#d2~0.offset|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {1516#(and (= 0 |~#d2~0.offset|) (= |get_dummy_#res.offset| |~#d2~0.offset|) (= |get_dummy_#res.base| |~#d2~0.base|))} is VALID [2018-11-14 19:10:57,846 INFO L273 TraceCheckUtils]: 12: Hoare triple {1516#(and (= 0 |~#d2~0.offset|) (= |get_dummy_#res.offset| |~#d2~0.offset|) (= |get_dummy_#res.base| |~#d2~0.base|))} assume true; {1516#(and (= 0 |~#d2~0.offset|) (= |get_dummy_#res.offset| |~#d2~0.offset|) (= |get_dummy_#res.base| |~#d2~0.base|))} is VALID [2018-11-14 19:10:57,847 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {1516#(and (= 0 |~#d2~0.offset|) (= |get_dummy_#res.offset| |~#d2~0.offset|) (= |get_dummy_#res.base| |~#d2~0.base|))} {1468#(= 0 |~#d2~0.offset|)} #56#return; {1471#(and (= |~#d2~0.base| |main_#t~ret7.base|) (= 0 |main_#t~ret7.offset|) (= 0 |~#d2~0.offset|))} is VALID [2018-11-14 19:10:57,848 INFO L273 TraceCheckUtils]: 14: Hoare triple {1471#(and (= |~#d2~0.base| |main_#t~ret7.base|) (= 0 |main_#t~ret7.offset|) (= 0 |~#d2~0.offset|))} ~pd1~0.base, ~pd1~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {1472#(and (= |~#d2~0.base| main_~pd1~0.base) (= 0 |~#d2~0.offset|) (= 0 main_~pd1~0.offset))} is VALID [2018-11-14 19:10:57,848 INFO L256 TraceCheckUtils]: 15: Hoare triple {1472#(and (= |~#d2~0.base| main_~pd1~0.base) (= 0 |~#d2~0.offset|) (= 0 main_~pd1~0.offset))} call #t~ret8.base, #t~ret8.offset := get_dummy(); {1468#(= 0 |~#d2~0.offset|)} is VALID [2018-11-14 19:10:57,849 INFO L273 TraceCheckUtils]: 16: Hoare triple {1468#(= 0 |~#d2~0.offset|)} assume !(#t~nondet4 % 256 != 0);#t~ite5.base, #t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {1532#(and (= 0 |~#d2~0.offset|) (= |~#d2~0.base| |get_dummy_#t~ite5.base|) (<= |get_dummy_#t~ite5.offset| |~#d2~0.offset|))} is VALID [2018-11-14 19:10:57,850 INFO L273 TraceCheckUtils]: 17: Hoare triple {1532#(and (= 0 |~#d2~0.offset|) (= |~#d2~0.base| |get_dummy_#t~ite5.base|) (<= |get_dummy_#t~ite5.offset| |~#d2~0.offset|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {1536#(and (<= |get_dummy_#res.offset| |~#d2~0.offset|) (= 0 |~#d2~0.offset|) (= |get_dummy_#res.base| |~#d2~0.base|))} is VALID [2018-11-14 19:10:57,851 INFO L273 TraceCheckUtils]: 18: Hoare triple {1536#(and (<= |get_dummy_#res.offset| |~#d2~0.offset|) (= 0 |~#d2~0.offset|) (= |get_dummy_#res.base| |~#d2~0.base|))} assume true; {1536#(and (<= |get_dummy_#res.offset| |~#d2~0.offset|) (= 0 |~#d2~0.offset|) (= |get_dummy_#res.base| |~#d2~0.base|))} is VALID [2018-11-14 19:10:57,852 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {1536#(and (<= |get_dummy_#res.offset| |~#d2~0.offset|) (= 0 |~#d2~0.offset|) (= |get_dummy_#res.base| |~#d2~0.base|))} {1472#(and (= |~#d2~0.base| main_~pd1~0.base) (= 0 |~#d2~0.offset|) (= 0 main_~pd1~0.offset))} #58#return; {1543#(and (<= |main_#t~ret8.offset| 0) (= 0 main_~pd1~0.offset) (= |main_#t~ret8.base| main_~pd1~0.base))} is VALID [2018-11-14 19:10:57,853 INFO L273 TraceCheckUtils]: 20: Hoare triple {1543#(and (<= |main_#t~ret8.offset| 0) (= 0 main_~pd1~0.offset) (= |main_#t~ret8.base| main_~pd1~0.base))} ~pd2~0.base, ~pd2~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset;assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647;~i~0 := #t~nondet9;havoc #t~nondet9; {1547#(and (<= main_~pd2~0.offset 0) (= 0 main_~pd1~0.offset) (= main_~pd2~0.base main_~pd1~0.base))} is VALID [2018-11-14 19:10:57,866 INFO L273 TraceCheckUtils]: 21: Hoare triple {1547#(and (<= main_~pd2~0.offset 0) (= 0 main_~pd1~0.offset) (= main_~pd2~0.base main_~pd1~0.base))} assume (((~pd1~0.base != 0 || ~pd1~0.offset != 0) && ~pd1~0.base == ~pd2~0.base && ~pd1~0.offset == ~pd2~0.offset) && ~i~0 >= 0) && ~i~0 < 10;call write~int(~i~0, ~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~pa~0.base, ~pa~0.offset := ~pd1~0.base, ~pd1~0.offset + 8 + ~i~0 * 4;call #t~mem10 := read~int(~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~i~0 := #t~mem10 - 10;havoc #t~mem10; {1551#(exists ((main_~pd2~0.offset Int) (v_main_~i~0_12 Int)) (and (<= main_~pd2~0.offset 0) (= (+ (* 4 v_main_~i~0_12) 8) main_~pa~0.offset) (<= 0 main_~pd2~0.offset) (= v_main_~i~0_12 (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_12) 8))) (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_12) 8)))))} is VALID [2018-11-14 19:10:57,867 INFO L273 TraceCheckUtils]: 22: Hoare triple {1551#(exists ((main_~pd2~0.offset Int) (v_main_~i~0_12 Int)) (and (<= main_~pd2~0.offset 0) (= (+ (* 4 v_main_~i~0_12) 8) main_~pa~0.offset) (<= 0 main_~pd2~0.offset) (= v_main_~i~0_12 (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_12) 8))) (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_12) 8)))))} assume true; {1551#(exists ((main_~pd2~0.offset Int) (v_main_~i~0_12 Int)) (and (<= main_~pd2~0.offset 0) (= (+ (* 4 v_main_~i~0_12) 8) main_~pa~0.offset) (<= 0 main_~pd2~0.offset) (= v_main_~i~0_12 (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_12) 8))) (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_12) 8)))))} is VALID [2018-11-14 19:10:57,868 INFO L273 TraceCheckUtils]: 23: Hoare triple {1551#(exists ((main_~pd2~0.offset Int) (v_main_~i~0_12 Int)) (and (<= main_~pd2~0.offset 0) (= (+ (* 4 v_main_~i~0_12) 8) main_~pa~0.offset) (<= 0 main_~pd2~0.offset) (= v_main_~i~0_12 (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_12) 8))) (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_12) 8)))))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {1551#(exists ((main_~pd2~0.offset Int) (v_main_~i~0_12 Int)) (and (<= main_~pd2~0.offset 0) (= (+ (* 4 v_main_~i~0_12) 8) main_~pa~0.offset) (<= 0 main_~pd2~0.offset) (= v_main_~i~0_12 (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_12) 8))) (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_12) 8)))))} is VALID [2018-11-14 19:10:57,870 INFO L273 TraceCheckUtils]: 24: Hoare triple {1551#(exists ((main_~pd2~0.offset Int) (v_main_~i~0_12 Int)) (and (<= main_~pd2~0.offset 0) (= (+ (* 4 v_main_~i~0_12) 8) main_~pa~0.offset) (<= 0 main_~pd2~0.offset) (= v_main_~i~0_12 (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_12) 8))) (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_12) 8)))))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {1561#(exists ((main_~pd2~0.offset Int) (v_main_~i~0_12 Int)) (and (<= main_~pd2~0.offset 0) (= (+ (* 4 v_main_~i~0_12) 8) main_~pa~0.offset) (<= (+ main_~i~0 9) (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_12) 8))) (<= 0 main_~pd2~0.offset) (= v_main_~i~0_12 (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_12) 8)))))} is VALID [2018-11-14 19:10:57,871 INFO L273 TraceCheckUtils]: 25: Hoare triple {1561#(exists ((main_~pd2~0.offset Int) (v_main_~i~0_12 Int)) (and (<= main_~pd2~0.offset 0) (= (+ (* 4 v_main_~i~0_12) 8) main_~pa~0.offset) (<= (+ main_~i~0 9) (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_12) 8))) (<= 0 main_~pd2~0.offset) (= v_main_~i~0_12 (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_12) 8)))))} assume true; {1561#(exists ((main_~pd2~0.offset Int) (v_main_~i~0_12 Int)) (and (<= main_~pd2~0.offset 0) (= (+ (* 4 v_main_~i~0_12) 8) main_~pa~0.offset) (<= (+ main_~i~0 9) (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_12) 8))) (<= 0 main_~pd2~0.offset) (= v_main_~i~0_12 (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_12) 8)))))} is VALID [2018-11-14 19:10:57,872 INFO L273 TraceCheckUtils]: 26: Hoare triple {1561#(exists ((main_~pd2~0.offset Int) (v_main_~i~0_12 Int)) (and (<= main_~pd2~0.offset 0) (= (+ (* 4 v_main_~i~0_12) 8) main_~pa~0.offset) (<= (+ main_~i~0 9) (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_12) 8))) (<= 0 main_~pd2~0.offset) (= v_main_~i~0_12 (select (select |#memory_int| main_~pa~0.base) (+ main_~pd2~0.offset (* 4 v_main_~i~0_12) 8)))))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {1568#(<= (+ main_~i~0 9) |main_#t~mem11|)} is VALID [2018-11-14 19:10:57,873 INFO L273 TraceCheckUtils]: 27: Hoare triple {1568#(<= (+ main_~i~0 9) |main_#t~mem11|)} assume !(~i~0 <= #t~mem11);havoc #t~mem11; {1467#false} is VALID [2018-11-14 19:10:57,874 INFO L256 TraceCheckUtils]: 28: Hoare triple {1467#false} call #t~ret13 := check(~pd2~0.base, ~pd2~0.offset, ~i~0); {1467#false} is VALID [2018-11-14 19:10:57,874 INFO L273 TraceCheckUtils]: 29: Hoare triple {1467#false} ~s1.base, ~s1.offset := #in~s1.base, #in~s1.offset;~i := #in~i;call #t~mem6 := read~int(~s1.base, ~s1.offset + 8 + ~i * 4, 4);#res := (if #t~mem6 == ~i then 1 else 0);havoc #t~mem6; {1467#false} is VALID [2018-11-14 19:10:57,874 INFO L273 TraceCheckUtils]: 30: Hoare triple {1467#false} assume true; {1467#false} is VALID [2018-11-14 19:10:57,874 INFO L268 TraceCheckUtils]: 31: Hoare quadruple {1467#false} {1467#false} #60#return; {1467#false} is VALID [2018-11-14 19:10:57,875 INFO L273 TraceCheckUtils]: 32: Hoare triple {1467#false} assume -2147483648 <= #t~ret13 && #t~ret13 <= 2147483647; {1467#false} is VALID [2018-11-14 19:10:57,875 INFO L273 TraceCheckUtils]: 33: Hoare triple {1467#false} assume #t~ret13 == 0;havoc #t~ret13; {1467#false} is VALID [2018-11-14 19:10:57,875 INFO L273 TraceCheckUtils]: 34: Hoare triple {1467#false} assume !false; {1467#false} is VALID [2018-11-14 19:10:57,879 INFO L134 CoverageAnalysis]: Checked inductivity of 7 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2018-11-14 19:10:57,900 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-14 19:10:57,900 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 14] total 22 [2018-11-14 19:10:57,902 INFO L78 Accepts]: Start accepts. Automaton has 22 states. Word has length 35 [2018-11-14 19:10:57,902 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 19:10:57,902 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 22 states. [2018-11-14 19:10:57,973 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:57,973 INFO L459 AbstractCegarLoop]: Interpolant automaton has 22 states [2018-11-14 19:10:57,973 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 22 interpolants. [2018-11-14 19:10:57,974 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=57, Invalid=405, Unknown=0, NotChecked=0, Total=462 [2018-11-14 19:10:57,974 INFO L87 Difference]: Start difference. First operand 45 states and 49 transitions. Second operand 22 states. [2018-11-14 19:11:00,561 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:11:00,561 INFO L93 Difference]: Finished difference Result 70 states and 76 transitions. [2018-11-14 19:11:00,561 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2018-11-14 19:11:00,561 INFO L78 Accepts]: Start accepts. Automaton has 22 states. Word has length 35 [2018-11-14 19:11:00,561 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 19:11:00,561 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 22 states. [2018-11-14 19:11:00,564 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 67 transitions. [2018-11-14 19:11:00,564 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 22 states. [2018-11-14 19:11:00,566 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 67 transitions. [2018-11-14 19:11:00,567 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 15 states and 67 transitions. [2018-11-14 19:11:00,653 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 67 edges. 67 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:11:00,656 INFO L225 Difference]: With dead ends: 70 [2018-11-14 19:11:00,656 INFO L226 Difference]: Without dead ends: 62 [2018-11-14 19:11:00,657 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 58 GetRequests, 25 SyntacticMatches, 5 SemanticMatches, 28 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 131 ImplicationChecksByTransitivity, 1.1s TimeCoverageRelationStatistics Valid=144, Invalid=726, Unknown=0, NotChecked=0, Total=870 [2018-11-14 19:11:00,657 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 62 states. [2018-11-14 19:11:00,741 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 62 to 43. [2018-11-14 19:11:00,742 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 19:11:00,742 INFO L82 GeneralOperation]: Start isEquivalent. First operand 62 states. Second operand 43 states. [2018-11-14 19:11:00,742 INFO L74 IsIncluded]: Start isIncluded. First operand 62 states. Second operand 43 states. [2018-11-14 19:11:00,743 INFO L87 Difference]: Start difference. First operand 62 states. Second operand 43 states. [2018-11-14 19:11:00,747 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:11:00,747 INFO L93 Difference]: Finished difference Result 62 states and 67 transitions. [2018-11-14 19:11:00,747 INFO L276 IsEmpty]: Start isEmpty. Operand 62 states and 67 transitions. [2018-11-14 19:11:00,748 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:11:00,748 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:11:00,748 INFO L74 IsIncluded]: Start isIncluded. First operand 43 states. Second operand 62 states. [2018-11-14 19:11:00,748 INFO L87 Difference]: Start difference. First operand 43 states. Second operand 62 states. [2018-11-14 19:11:00,751 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:11:00,751 INFO L93 Difference]: Finished difference Result 62 states and 67 transitions. [2018-11-14 19:11:00,751 INFO L276 IsEmpty]: Start isEmpty. Operand 62 states and 67 transitions. [2018-11-14 19:11:00,751 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:11:00,752 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:11:00,752 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 19:11:00,752 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 19:11:00,752 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 43 states. [2018-11-14 19:11:00,754 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 43 states to 43 states and 47 transitions. [2018-11-14 19:11:00,754 INFO L78 Accepts]: Start accepts. Automaton has 43 states and 47 transitions. Word has length 35 [2018-11-14 19:11:00,754 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 19:11:00,754 INFO L480 AbstractCegarLoop]: Abstraction has 43 states and 47 transitions. [2018-11-14 19:11:00,755 INFO L481 AbstractCegarLoop]: Interpolant automaton has 22 states. [2018-11-14 19:11:00,755 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 47 transitions. [2018-11-14 19:11:00,755 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 42 [2018-11-14 19:11:00,756 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:11:00,756 INFO L375 BasicCegarLoop]: trace histogram [4, 4, 3, 2, 2, 2, 1, 1, 1, 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:11:00,756 INFO L423 AbstractCegarLoop]: === Iteration 7 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:11:00,756 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:11:00,756 INFO L82 PathProgramCache]: Analyzing trace with hash 1010458265, now seen corresponding path program 2 times [2018-11-14 19:11:00,757 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:11:00,757 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:11:00,758 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:11:00,758 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 19:11:00,758 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:11:00,778 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:11:01,294 INFO L256 TraceCheckUtils]: 0: Hoare triple {1886#true} call ULTIMATE.init(); {1886#true} is VALID [2018-11-14 19:11:01,294 INFO L273 TraceCheckUtils]: 1: Hoare triple {1886#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];call ~#d1~0.base, ~#d1~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base); {1888#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:11:01,295 INFO L273 TraceCheckUtils]: 2: Hoare triple {1888#(= 0 |~#d1~0.offset|)} assume true; {1888#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:11:01,296 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1888#(= 0 |~#d1~0.offset|)} {1886#true} #62#return; {1888#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:11:01,296 INFO L256 TraceCheckUtils]: 4: Hoare triple {1888#(= 0 |~#d1~0.offset|)} call #t~ret14 := main(); {1888#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:11:01,297 INFO L256 TraceCheckUtils]: 5: Hoare triple {1888#(= 0 |~#d1~0.offset|)} call init(); {1886#true} is VALID [2018-11-14 19:11:01,297 INFO L273 TraceCheckUtils]: 6: Hoare triple {1886#true} assume -2147483648 <= #t~nondet0 && #t~nondet0 <= 2147483647;call write~int(#t~nondet0, ~#d1~0.base, ~#d1~0.offset + 0, 4);havoc #t~nondet0;assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;call write~int(#t~nondet1, ~#d1~0.base, ~#d1~0.offset + 4, 4);havoc #t~nondet1;assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;call write~int(#t~nondet2, ~#d2~0.base, ~#d2~0.offset + 0, 4);havoc #t~nondet2;assume -2147483648 <= #t~nondet3 && #t~nondet3 <= 2147483647;call write~int(#t~nondet3, ~#d2~0.base, ~#d2~0.offset + 4, 4);havoc #t~nondet3; {1886#true} is VALID [2018-11-14 19:11:01,297 INFO L273 TraceCheckUtils]: 7: Hoare triple {1886#true} assume true; {1886#true} is VALID [2018-11-14 19:11:01,300 INFO L268 TraceCheckUtils]: 8: Hoare quadruple {1886#true} {1888#(= 0 |~#d1~0.offset|)} #54#return; {1888#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:11:01,300 INFO L256 TraceCheckUtils]: 9: Hoare triple {1888#(= 0 |~#d1~0.offset|)} call #t~ret7.base, #t~ret7.offset := get_dummy(); {1886#true} is VALID [2018-11-14 19:11:01,307 INFO L273 TraceCheckUtils]: 10: Hoare triple {1886#true} assume #t~nondet4 % 256 != 0;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {1889#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |get_dummy_#t~ite5.base| |~#d1~0.base|))} is VALID [2018-11-14 19:11:01,308 INFO L273 TraceCheckUtils]: 11: Hoare triple {1889#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |get_dummy_#t~ite5.base| |~#d1~0.base|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {1890#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} is VALID [2018-11-14 19:11:01,308 INFO L273 TraceCheckUtils]: 12: Hoare triple {1890#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} assume true; {1890#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} is VALID [2018-11-14 19:11:01,309 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {1890#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} {1888#(= 0 |~#d1~0.offset|)} #56#return; {1891#(and (= 0 |main_#t~ret7.offset|) (= |main_#t~ret7.base| |~#d1~0.base|) (= 0 |~#d1~0.offset|))} is VALID [2018-11-14 19:11:01,310 INFO L273 TraceCheckUtils]: 14: Hoare triple {1891#(and (= 0 |main_#t~ret7.offset|) (= |main_#t~ret7.base| |~#d1~0.base|) (= 0 |~#d1~0.offset|))} ~pd1~0.base, ~pd1~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {1892#(and (= main_~pd1~0.base |~#d1~0.base|) (= 0 main_~pd1~0.offset) (= 0 |~#d1~0.offset|))} is VALID [2018-11-14 19:11:01,310 INFO L256 TraceCheckUtils]: 15: Hoare triple {1892#(and (= main_~pd1~0.base |~#d1~0.base|) (= 0 main_~pd1~0.offset) (= 0 |~#d1~0.offset|))} call #t~ret8.base, #t~ret8.offset := get_dummy(); {1886#true} is VALID [2018-11-14 19:11:01,311 INFO L273 TraceCheckUtils]: 16: Hoare triple {1886#true} assume #t~nondet4 % 256 != 0;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {1889#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |get_dummy_#t~ite5.base| |~#d1~0.base|))} is VALID [2018-11-14 19:11:01,311 INFO L273 TraceCheckUtils]: 17: Hoare triple {1889#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |get_dummy_#t~ite5.base| |~#d1~0.base|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {1890#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} is VALID [2018-11-14 19:11:01,311 INFO L273 TraceCheckUtils]: 18: Hoare triple {1890#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} assume true; {1890#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} is VALID [2018-11-14 19:11:01,313 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {1890#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} {1892#(and (= main_~pd1~0.base |~#d1~0.base|) (= 0 main_~pd1~0.offset) (= 0 |~#d1~0.offset|))} #58#return; {1893#(and (= main_~pd1~0.base |main_#t~ret8.base|) (= 0 main_~pd1~0.offset) (= 0 |main_#t~ret8.offset|))} is VALID [2018-11-14 19:11:01,314 INFO L273 TraceCheckUtils]: 20: Hoare triple {1893#(and (= main_~pd1~0.base |main_#t~ret8.base|) (= 0 main_~pd1~0.offset) (= 0 |main_#t~ret8.offset|))} ~pd2~0.base, ~pd2~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset;assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647;~i~0 := #t~nondet9;havoc #t~nondet9; {1894#(and (= 0 main_~pd1~0.offset) (= main_~pd2~0.offset 0) (= main_~pd2~0.base main_~pd1~0.base))} is VALID [2018-11-14 19:11:01,315 INFO L273 TraceCheckUtils]: 21: Hoare triple {1894#(and (= 0 main_~pd1~0.offset) (= main_~pd2~0.offset 0) (= main_~pd2~0.base main_~pd1~0.base))} assume (((~pd1~0.base != 0 || ~pd1~0.offset != 0) && ~pd1~0.base == ~pd2~0.base && ~pd1~0.offset == ~pd2~0.offset) && ~i~0 >= 0) && ~i~0 < 10;call write~int(~i~0, ~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~pa~0.base, ~pa~0.offset := ~pd1~0.base, ~pd1~0.offset + 8 + ~i~0 * 4;call #t~mem10 := read~int(~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~i~0 := #t~mem10 - 10;havoc #t~mem10; {1895#(and (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.base main_~pa~0.base))} is VALID [2018-11-14 19:11:01,316 INFO L273 TraceCheckUtils]: 22: Hoare triple {1895#(and (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.base main_~pa~0.base))} assume true; {1895#(and (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.base main_~pa~0.base))} is VALID [2018-11-14 19:11:01,317 INFO L273 TraceCheckUtils]: 23: Hoare triple {1895#(and (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.base main_~pa~0.base))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {1896#(and (= |main_#t~mem11| (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (<= (+ main_~i~0 3) |main_#t~mem11|))} is VALID [2018-11-14 19:11:01,318 INFO L273 TraceCheckUtils]: 24: Hoare triple {1896#(and (= |main_#t~mem11| (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (<= (+ main_~i~0 3) |main_#t~mem11|))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {1897#(<= (+ main_~i~0 2) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:01,319 INFO L273 TraceCheckUtils]: 25: Hoare triple {1897#(<= (+ main_~i~0 2) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume true; {1897#(<= (+ main_~i~0 2) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:01,319 INFO L273 TraceCheckUtils]: 26: Hoare triple {1897#(<= (+ main_~i~0 2) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {1897#(<= (+ main_~i~0 2) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:01,320 INFO L273 TraceCheckUtils]: 27: Hoare triple {1897#(<= (+ main_~i~0 2) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {1898#(<= (+ main_~i~0 1) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:01,321 INFO L273 TraceCheckUtils]: 28: Hoare triple {1898#(<= (+ main_~i~0 1) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume true; {1898#(<= (+ main_~i~0 1) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:01,321 INFO L273 TraceCheckUtils]: 29: Hoare triple {1898#(<= (+ main_~i~0 1) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {1898#(<= (+ main_~i~0 1) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:01,322 INFO L273 TraceCheckUtils]: 30: Hoare triple {1898#(<= (+ main_~i~0 1) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {1899#(<= main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:01,323 INFO L273 TraceCheckUtils]: 31: Hoare triple {1899#(<= main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume true; {1899#(<= main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:01,324 INFO L273 TraceCheckUtils]: 32: Hoare triple {1899#(<= main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {1900#(<= main_~i~0 |main_#t~mem11|)} is VALID [2018-11-14 19:11:01,324 INFO L273 TraceCheckUtils]: 33: Hoare triple {1900#(<= main_~i~0 |main_#t~mem11|)} assume !(~i~0 <= #t~mem11);havoc #t~mem11; {1887#false} is VALID [2018-11-14 19:11:01,325 INFO L256 TraceCheckUtils]: 34: Hoare triple {1887#false} call #t~ret13 := check(~pd2~0.base, ~pd2~0.offset, ~i~0); {1886#true} is VALID [2018-11-14 19:11:01,325 INFO L273 TraceCheckUtils]: 35: Hoare triple {1886#true} ~s1.base, ~s1.offset := #in~s1.base, #in~s1.offset;~i := #in~i;call #t~mem6 := read~int(~s1.base, ~s1.offset + 8 + ~i * 4, 4);#res := (if #t~mem6 == ~i then 1 else 0);havoc #t~mem6; {1886#true} is VALID [2018-11-14 19:11:01,325 INFO L273 TraceCheckUtils]: 36: Hoare triple {1886#true} assume true; {1886#true} is VALID [2018-11-14 19:11:01,325 INFO L268 TraceCheckUtils]: 37: Hoare quadruple {1886#true} {1887#false} #60#return; {1887#false} is VALID [2018-11-14 19:11:01,326 INFO L273 TraceCheckUtils]: 38: Hoare triple {1887#false} assume -2147483648 <= #t~ret13 && #t~ret13 <= 2147483647; {1887#false} is VALID [2018-11-14 19:11:01,326 INFO L273 TraceCheckUtils]: 39: Hoare triple {1887#false} assume #t~ret13 == 0;havoc #t~ret13; {1887#false} is VALID [2018-11-14 19:11:01,326 INFO L273 TraceCheckUtils]: 40: Hoare triple {1887#false} assume !false; {1887#false} is VALID [2018-11-14 19:11:01,330 INFO L134 CoverageAnalysis]: Checked inductivity of 22 backedges. 0 proven. 18 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-14 19:11:01,330 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-14 19:11:01,330 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:11:01,339 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST1 [2018-11-14 19:11:01,372 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2018-11-14 19:11:01,372 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-14 19:11:01,406 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:11:01,408 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-14 19:11:01,576 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 8 [2018-11-14 19:11:01,580 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 8 treesize of output 7 [2018-11-14 19:11:01,581 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 19:11:01,584 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:11:01,590 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:11:01,590 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:21, output treesize:9 [2018-11-14 19:11:01,593 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 19:11:01,716 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 17 treesize of output 13 [2018-11-14 19:11:01,721 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 13 treesize of output 9 [2018-11-14 19:11:01,725 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 19:11:01,726 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:11:01,729 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:11:01,729 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 3 variables, input treesize:17, output treesize:5 [2018-11-14 19:11:01,731 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 19:11:01,756 INFO L256 TraceCheckUtils]: 0: Hoare triple {1886#true} call ULTIMATE.init(); {1886#true} is VALID [2018-11-14 19:11:01,756 INFO L273 TraceCheckUtils]: 1: Hoare triple {1886#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];call ~#d1~0.base, ~#d1~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base); {1886#true} is VALID [2018-11-14 19:11:01,757 INFO L273 TraceCheckUtils]: 2: Hoare triple {1886#true} assume true; {1886#true} is VALID [2018-11-14 19:11:01,757 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1886#true} {1886#true} #62#return; {1886#true} is VALID [2018-11-14 19:11:01,757 INFO L256 TraceCheckUtils]: 4: Hoare triple {1886#true} call #t~ret14 := main(); {1886#true} is VALID [2018-11-14 19:11:01,758 INFO L256 TraceCheckUtils]: 5: Hoare triple {1886#true} call init(); {1886#true} is VALID [2018-11-14 19:11:01,758 INFO L273 TraceCheckUtils]: 6: Hoare triple {1886#true} assume -2147483648 <= #t~nondet0 && #t~nondet0 <= 2147483647;call write~int(#t~nondet0, ~#d1~0.base, ~#d1~0.offset + 0, 4);havoc #t~nondet0;assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;call write~int(#t~nondet1, ~#d1~0.base, ~#d1~0.offset + 4, 4);havoc #t~nondet1;assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;call write~int(#t~nondet2, ~#d2~0.base, ~#d2~0.offset + 0, 4);havoc #t~nondet2;assume -2147483648 <= #t~nondet3 && #t~nondet3 <= 2147483647;call write~int(#t~nondet3, ~#d2~0.base, ~#d2~0.offset + 4, 4);havoc #t~nondet3; {1886#true} is VALID [2018-11-14 19:11:01,758 INFO L273 TraceCheckUtils]: 7: Hoare triple {1886#true} assume true; {1886#true} is VALID [2018-11-14 19:11:01,758 INFO L268 TraceCheckUtils]: 8: Hoare quadruple {1886#true} {1886#true} #54#return; {1886#true} is VALID [2018-11-14 19:11:01,759 INFO L256 TraceCheckUtils]: 9: Hoare triple {1886#true} call #t~ret7.base, #t~ret7.offset := get_dummy(); {1886#true} is VALID [2018-11-14 19:11:01,759 INFO L273 TraceCheckUtils]: 10: Hoare triple {1886#true} assume #t~nondet4 % 256 != 0;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {1886#true} is VALID [2018-11-14 19:11:01,759 INFO L273 TraceCheckUtils]: 11: Hoare triple {1886#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {1886#true} is VALID [2018-11-14 19:11:01,759 INFO L273 TraceCheckUtils]: 12: Hoare triple {1886#true} assume true; {1886#true} is VALID [2018-11-14 19:11:01,759 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {1886#true} {1886#true} #56#return; {1886#true} is VALID [2018-11-14 19:11:01,759 INFO L273 TraceCheckUtils]: 14: Hoare triple {1886#true} ~pd1~0.base, ~pd1~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {1886#true} is VALID [2018-11-14 19:11:01,759 INFO L256 TraceCheckUtils]: 15: Hoare triple {1886#true} call #t~ret8.base, #t~ret8.offset := get_dummy(); {1886#true} is VALID [2018-11-14 19:11:01,760 INFO L273 TraceCheckUtils]: 16: Hoare triple {1886#true} assume #t~nondet4 % 256 != 0;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {1952#(= |~#d1~0.base| |get_dummy_#t~ite5.base|)} is VALID [2018-11-14 19:11:01,760 INFO L273 TraceCheckUtils]: 17: Hoare triple {1952#(= |~#d1~0.base| |get_dummy_#t~ite5.base|)} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {1956#(= |~#d1~0.base| |get_dummy_#res.base|)} is VALID [2018-11-14 19:11:01,761 INFO L273 TraceCheckUtils]: 18: Hoare triple {1956#(= |~#d1~0.base| |get_dummy_#res.base|)} assume true; {1956#(= |~#d1~0.base| |get_dummy_#res.base|)} is VALID [2018-11-14 19:11:01,761 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {1956#(= |~#d1~0.base| |get_dummy_#res.base|)} {1886#true} #58#return; {1886#true} is VALID [2018-11-14 19:11:01,761 INFO L273 TraceCheckUtils]: 20: Hoare triple {1886#true} ~pd2~0.base, ~pd2~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset;assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647;~i~0 := #t~nondet9;havoc #t~nondet9; {1886#true} is VALID [2018-11-14 19:11:01,762 INFO L273 TraceCheckUtils]: 21: Hoare triple {1886#true} assume (((~pd1~0.base != 0 || ~pd1~0.offset != 0) && ~pd1~0.base == ~pd2~0.base && ~pd1~0.offset == ~pd2~0.offset) && ~i~0 >= 0) && ~i~0 < 10;call write~int(~i~0, ~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~pa~0.base, ~pa~0.offset := ~pd1~0.base, ~pd1~0.offset + 8 + ~i~0 * 4;call #t~mem10 := read~int(~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~i~0 := #t~mem10 - 10;havoc #t~mem10; {1969#(<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:01,762 INFO L273 TraceCheckUtils]: 22: Hoare triple {1969#(<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume true; {1969#(<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:01,763 INFO L273 TraceCheckUtils]: 23: Hoare triple {1969#(<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {1969#(<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:01,764 INFO L273 TraceCheckUtils]: 24: Hoare triple {1969#(<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {1979#(<= (+ main_~i~0 9) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:01,764 INFO L273 TraceCheckUtils]: 25: Hoare triple {1979#(<= (+ main_~i~0 9) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume true; {1979#(<= (+ main_~i~0 9) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:01,765 INFO L273 TraceCheckUtils]: 26: Hoare triple {1979#(<= (+ main_~i~0 9) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {1979#(<= (+ main_~i~0 9) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:01,766 INFO L273 TraceCheckUtils]: 27: Hoare triple {1979#(<= (+ main_~i~0 9) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {1989#(<= (+ main_~i~0 8) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:01,767 INFO L273 TraceCheckUtils]: 28: Hoare triple {1989#(<= (+ main_~i~0 8) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume true; {1989#(<= (+ main_~i~0 8) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:01,767 INFO L273 TraceCheckUtils]: 29: Hoare triple {1989#(<= (+ main_~i~0 8) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {1989#(<= (+ main_~i~0 8) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:01,768 INFO L273 TraceCheckUtils]: 30: Hoare triple {1989#(<= (+ main_~i~0 8) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {1999#(<= (+ main_~i~0 7) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:01,769 INFO L273 TraceCheckUtils]: 31: Hoare triple {1999#(<= (+ main_~i~0 7) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume true; {1999#(<= (+ main_~i~0 7) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:01,770 INFO L273 TraceCheckUtils]: 32: Hoare triple {1999#(<= (+ main_~i~0 7) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {2006#(<= (+ main_~i~0 7) |main_#t~mem11|)} is VALID [2018-11-14 19:11:01,770 INFO L273 TraceCheckUtils]: 33: Hoare triple {2006#(<= (+ main_~i~0 7) |main_#t~mem11|)} assume !(~i~0 <= #t~mem11);havoc #t~mem11; {1887#false} is VALID [2018-11-14 19:11:01,771 INFO L256 TraceCheckUtils]: 34: Hoare triple {1887#false} call #t~ret13 := check(~pd2~0.base, ~pd2~0.offset, ~i~0); {1887#false} is VALID [2018-11-14 19:11:01,771 INFO L273 TraceCheckUtils]: 35: Hoare triple {1887#false} ~s1.base, ~s1.offset := #in~s1.base, #in~s1.offset;~i := #in~i;call #t~mem6 := read~int(~s1.base, ~s1.offset + 8 + ~i * 4, 4);#res := (if #t~mem6 == ~i then 1 else 0);havoc #t~mem6; {1887#false} is VALID [2018-11-14 19:11:01,771 INFO L273 TraceCheckUtils]: 36: Hoare triple {1887#false} assume true; {1887#false} is VALID [2018-11-14 19:11:01,772 INFO L268 TraceCheckUtils]: 37: Hoare quadruple {1887#false} {1887#false} #60#return; {1887#false} is VALID [2018-11-14 19:11:01,772 INFO L273 TraceCheckUtils]: 38: Hoare triple {1887#false} assume -2147483648 <= #t~ret13 && #t~ret13 <= 2147483647; {1887#false} is VALID [2018-11-14 19:11:01,772 INFO L273 TraceCheckUtils]: 39: Hoare triple {1887#false} assume #t~ret13 == 0;havoc #t~ret13; {1887#false} is VALID [2018-11-14 19:11:01,773 INFO L273 TraceCheckUtils]: 40: Hoare triple {1887#false} assume !false; {1887#false} is VALID [2018-11-14 19:11:01,775 INFO L134 CoverageAnalysis]: Checked inductivity of 22 backedges. 3 proven. 18 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2018-11-14 19:11:01,797 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-14 19:11:01,797 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 9] total 22 [2018-11-14 19:11:01,797 INFO L78 Accepts]: Start accepts. Automaton has 22 states. Word has length 41 [2018-11-14 19:11:01,798 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 19:11:01,798 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 22 states. [2018-11-14 19:11:01,869 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 73 edges. 73 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:11:01,869 INFO L459 AbstractCegarLoop]: Interpolant automaton has 22 states [2018-11-14 19:11:01,869 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 22 interpolants. [2018-11-14 19:11:01,870 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=78, Invalid=384, Unknown=0, NotChecked=0, Total=462 [2018-11-14 19:11:01,870 INFO L87 Difference]: Start difference. First operand 43 states and 47 transitions. Second operand 22 states. [2018-11-14 19:11:04,721 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:11:04,722 INFO L93 Difference]: Finished difference Result 96 states and 108 transitions. [2018-11-14 19:11:04,722 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 37 states. [2018-11-14 19:11:04,722 INFO L78 Accepts]: Start accepts. Automaton has 22 states. Word has length 41 [2018-11-14 19:11:04,722 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 19:11:04,723 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 22 states. [2018-11-14 19:11:04,726 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 37 states to 37 states and 108 transitions. [2018-11-14 19:11:04,726 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 22 states. [2018-11-14 19:11:04,729 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 37 states to 37 states and 108 transitions. [2018-11-14 19:11:04,729 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 37 states and 108 transitions. [2018-11-14 19:11:04,871 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 108 edges. 108 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:11:04,874 INFO L225 Difference]: With dead ends: 96 [2018-11-14 19:11:04,875 INFO L226 Difference]: Without dead ends: 88 [2018-11-14 19:11:04,876 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 91 GetRequests, 36 SyntacticMatches, 3 SemanticMatches, 52 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 696 ImplicationChecksByTransitivity, 1.7s TimeCoverageRelationStatistics Valid=594, Invalid=2268, Unknown=0, NotChecked=0, Total=2862 [2018-11-14 19:11:04,877 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 88 states. [2018-11-14 19:11:05,091 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 88 to 55. [2018-11-14 19:11:05,091 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 19:11:05,092 INFO L82 GeneralOperation]: Start isEquivalent. First operand 88 states. Second operand 55 states. [2018-11-14 19:11:05,092 INFO L74 IsIncluded]: Start isIncluded. First operand 88 states. Second operand 55 states. [2018-11-14 19:11:05,092 INFO L87 Difference]: Start difference. First operand 88 states. Second operand 55 states. [2018-11-14 19:11:05,095 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:11:05,096 INFO L93 Difference]: Finished difference Result 88 states and 93 transitions. [2018-11-14 19:11:05,096 INFO L276 IsEmpty]: Start isEmpty. Operand 88 states and 93 transitions. [2018-11-14 19:11:05,096 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:11:05,096 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:11:05,096 INFO L74 IsIncluded]: Start isIncluded. First operand 55 states. Second operand 88 states. [2018-11-14 19:11:05,097 INFO L87 Difference]: Start difference. First operand 55 states. Second operand 88 states. [2018-11-14 19:11:05,100 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:11:05,100 INFO L93 Difference]: Finished difference Result 88 states and 93 transitions. [2018-11-14 19:11:05,101 INFO L276 IsEmpty]: Start isEmpty. Operand 88 states and 93 transitions. [2018-11-14 19:11:05,101 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:11:05,101 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:11:05,101 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 19:11:05,102 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 19:11:05,102 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 55 states. [2018-11-14 19:11:05,104 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 55 states to 55 states and 59 transitions. [2018-11-14 19:11:05,104 INFO L78 Accepts]: Start accepts. Automaton has 55 states and 59 transitions. Word has length 41 [2018-11-14 19:11:05,104 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 19:11:05,105 INFO L480 AbstractCegarLoop]: Abstraction has 55 states and 59 transitions. [2018-11-14 19:11:05,106 INFO L481 AbstractCegarLoop]: Interpolant automaton has 22 states. [2018-11-14 19:11:05,106 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 59 transitions. [2018-11-14 19:11:05,107 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 54 [2018-11-14 19:11:05,107 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:11:05,108 INFO L375 BasicCegarLoop]: trace histogram [8, 8, 7, 2, 2, 2, 1, 1, 1, 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:11:05,108 INFO L423 AbstractCegarLoop]: === Iteration 8 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:11:05,108 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:11:05,108 INFO L82 PathProgramCache]: Analyzing trace with hash 122875545, now seen corresponding path program 3 times [2018-11-14 19:11:05,109 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:11:05,109 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:11:05,112 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:11:05,112 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-14 19:11:05,113 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:11:05,153 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:11:05,839 INFO L256 TraceCheckUtils]: 0: Hoare triple {2475#true} call ULTIMATE.init(); {2475#true} is VALID [2018-11-14 19:11:05,840 INFO L273 TraceCheckUtils]: 1: Hoare triple {2475#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];call ~#d1~0.base, ~#d1~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base); {2477#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:11:05,843 INFO L273 TraceCheckUtils]: 2: Hoare triple {2477#(= 0 |~#d1~0.offset|)} assume true; {2477#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:11:05,843 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {2477#(= 0 |~#d1~0.offset|)} {2475#true} #62#return; {2477#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:11:05,846 INFO L256 TraceCheckUtils]: 4: Hoare triple {2477#(= 0 |~#d1~0.offset|)} call #t~ret14 := main(); {2477#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:11:05,846 INFO L256 TraceCheckUtils]: 5: Hoare triple {2477#(= 0 |~#d1~0.offset|)} call init(); {2475#true} is VALID [2018-11-14 19:11:05,846 INFO L273 TraceCheckUtils]: 6: Hoare triple {2475#true} assume -2147483648 <= #t~nondet0 && #t~nondet0 <= 2147483647;call write~int(#t~nondet0, ~#d1~0.base, ~#d1~0.offset + 0, 4);havoc #t~nondet0;assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;call write~int(#t~nondet1, ~#d1~0.base, ~#d1~0.offset + 4, 4);havoc #t~nondet1;assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;call write~int(#t~nondet2, ~#d2~0.base, ~#d2~0.offset + 0, 4);havoc #t~nondet2;assume -2147483648 <= #t~nondet3 && #t~nondet3 <= 2147483647;call write~int(#t~nondet3, ~#d2~0.base, ~#d2~0.offset + 4, 4);havoc #t~nondet3; {2475#true} is VALID [2018-11-14 19:11:05,846 INFO L273 TraceCheckUtils]: 7: Hoare triple {2475#true} assume true; {2475#true} is VALID [2018-11-14 19:11:05,847 INFO L268 TraceCheckUtils]: 8: Hoare quadruple {2475#true} {2477#(= 0 |~#d1~0.offset|)} #54#return; {2477#(= 0 |~#d1~0.offset|)} is VALID [2018-11-14 19:11:05,847 INFO L256 TraceCheckUtils]: 9: Hoare triple {2477#(= 0 |~#d1~0.offset|)} call #t~ret7.base, #t~ret7.offset := get_dummy(); {2475#true} is VALID [2018-11-14 19:11:05,847 INFO L273 TraceCheckUtils]: 10: Hoare triple {2475#true} assume #t~nondet4 % 256 != 0;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {2478#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |get_dummy_#t~ite5.base| |~#d1~0.base|))} is VALID [2018-11-14 19:11:05,853 INFO L273 TraceCheckUtils]: 11: Hoare triple {2478#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |get_dummy_#t~ite5.base| |~#d1~0.base|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {2479#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} is VALID [2018-11-14 19:11:05,853 INFO L273 TraceCheckUtils]: 12: Hoare triple {2479#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} assume true; {2479#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} is VALID [2018-11-14 19:11:05,875 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {2479#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} {2477#(= 0 |~#d1~0.offset|)} #56#return; {2480#(and (= 0 |main_#t~ret7.offset|) (= |main_#t~ret7.base| |~#d1~0.base|) (= 0 |~#d1~0.offset|))} is VALID [2018-11-14 19:11:05,890 INFO L273 TraceCheckUtils]: 14: Hoare triple {2480#(and (= 0 |main_#t~ret7.offset|) (= |main_#t~ret7.base| |~#d1~0.base|) (= 0 |~#d1~0.offset|))} ~pd1~0.base, ~pd1~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {2481#(and (= main_~pd1~0.base |~#d1~0.base|) (= 0 main_~pd1~0.offset) (= 0 |~#d1~0.offset|))} is VALID [2018-11-14 19:11:05,890 INFO L256 TraceCheckUtils]: 15: Hoare triple {2481#(and (= main_~pd1~0.base |~#d1~0.base|) (= 0 main_~pd1~0.offset) (= 0 |~#d1~0.offset|))} call #t~ret8.base, #t~ret8.offset := get_dummy(); {2475#true} is VALID [2018-11-14 19:11:05,905 INFO L273 TraceCheckUtils]: 16: Hoare triple {2475#true} assume #t~nondet4 % 256 != 0;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {2478#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |get_dummy_#t~ite5.base| |~#d1~0.base|))} is VALID [2018-11-14 19:11:05,914 INFO L273 TraceCheckUtils]: 17: Hoare triple {2478#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |get_dummy_#t~ite5.base| |~#d1~0.base|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {2479#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} is VALID [2018-11-14 19:11:05,926 INFO L273 TraceCheckUtils]: 18: Hoare triple {2479#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} assume true; {2479#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} is VALID [2018-11-14 19:11:05,928 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {2479#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} {2481#(and (= main_~pd1~0.base |~#d1~0.base|) (= 0 main_~pd1~0.offset) (= 0 |~#d1~0.offset|))} #58#return; {2482#(and (= main_~pd1~0.base |main_#t~ret8.base|) (= 0 main_~pd1~0.offset) (= 0 |main_#t~ret8.offset|))} is VALID [2018-11-14 19:11:05,928 INFO L273 TraceCheckUtils]: 20: Hoare triple {2482#(and (= main_~pd1~0.base |main_#t~ret8.base|) (= 0 main_~pd1~0.offset) (= 0 |main_#t~ret8.offset|))} ~pd2~0.base, ~pd2~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset;assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647;~i~0 := #t~nondet9;havoc #t~nondet9; {2483#(and (= 0 main_~pd1~0.offset) (= main_~pd2~0.offset 0) (= main_~pd2~0.base main_~pd1~0.base))} is VALID [2018-11-14 19:11:05,930 INFO L273 TraceCheckUtils]: 21: Hoare triple {2483#(and (= 0 main_~pd1~0.offset) (= main_~pd2~0.offset 0) (= main_~pd2~0.base main_~pd1~0.base))} assume (((~pd1~0.base != 0 || ~pd1~0.offset != 0) && ~pd1~0.base == ~pd2~0.base && ~pd1~0.offset == ~pd2~0.offset) && ~i~0 >= 0) && ~i~0 < 10;call write~int(~i~0, ~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~pa~0.base, ~pa~0.offset := ~pd1~0.base, ~pd1~0.offset + 8 + ~i~0 * 4;call #t~mem10 := read~int(~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~i~0 := #t~mem10 - 10;havoc #t~mem10; {2484#(and (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.base main_~pa~0.base) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:05,930 INFO L273 TraceCheckUtils]: 22: Hoare triple {2484#(and (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.base main_~pa~0.base) (= main_~pd2~0.offset 0))} assume true; {2484#(and (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.base main_~pa~0.base) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:05,932 INFO L273 TraceCheckUtils]: 23: Hoare triple {2484#(and (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.base main_~pa~0.base) (= main_~pd2~0.offset 0))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {2485#(and (= |main_#t~mem11| (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (<= (+ main_~i~0 7) |main_#t~mem11|) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:05,933 INFO L273 TraceCheckUtils]: 24: Hoare triple {2485#(and (= |main_#t~mem11| (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (<= (+ main_~i~0 7) |main_#t~mem11|) (= main_~pd2~0.offset 0))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {2486#(and (<= (+ main_~i~0 6) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:05,933 INFO L273 TraceCheckUtils]: 25: Hoare triple {2486#(and (<= (+ main_~i~0 6) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} assume true; {2486#(and (<= (+ main_~i~0 6) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:05,934 INFO L273 TraceCheckUtils]: 26: Hoare triple {2486#(and (<= (+ main_~i~0 6) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {2486#(and (<= (+ main_~i~0 6) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:05,935 INFO L273 TraceCheckUtils]: 27: Hoare triple {2486#(and (<= (+ main_~i~0 6) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {2487#(and (= main_~pd2~0.offset 0) (<= (+ main_~i~0 5) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)))} is VALID [2018-11-14 19:11:05,936 INFO L273 TraceCheckUtils]: 28: Hoare triple {2487#(and (= main_~pd2~0.offset 0) (<= (+ main_~i~0 5) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)))} assume true; {2487#(and (= main_~pd2~0.offset 0) (<= (+ main_~i~0 5) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)))} is VALID [2018-11-14 19:11:05,937 INFO L273 TraceCheckUtils]: 29: Hoare triple {2487#(and (= main_~pd2~0.offset 0) (<= (+ main_~i~0 5) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {2487#(and (= main_~pd2~0.offset 0) (<= (+ main_~i~0 5) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)))} is VALID [2018-11-14 19:11:05,938 INFO L273 TraceCheckUtils]: 30: Hoare triple {2487#(and (= main_~pd2~0.offset 0) (<= (+ main_~i~0 5) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {2488#(and (<= (+ main_~i~0 4) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:05,938 INFO L273 TraceCheckUtils]: 31: Hoare triple {2488#(and (<= (+ main_~i~0 4) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} assume true; {2488#(and (<= (+ main_~i~0 4) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:05,939 INFO L273 TraceCheckUtils]: 32: Hoare triple {2488#(and (<= (+ main_~i~0 4) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {2488#(and (<= (+ main_~i~0 4) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:05,940 INFO L273 TraceCheckUtils]: 33: Hoare triple {2488#(and (<= (+ main_~i~0 4) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {2489#(and (<= (+ main_~i~0 3) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:05,941 INFO L273 TraceCheckUtils]: 34: Hoare triple {2489#(and (<= (+ main_~i~0 3) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} assume true; {2489#(and (<= (+ main_~i~0 3) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:05,942 INFO L273 TraceCheckUtils]: 35: Hoare triple {2489#(and (<= (+ main_~i~0 3) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {2489#(and (<= (+ main_~i~0 3) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:05,943 INFO L273 TraceCheckUtils]: 36: Hoare triple {2489#(and (<= (+ main_~i~0 3) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {2490#(and (<= (+ main_~i~0 2) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:05,944 INFO L273 TraceCheckUtils]: 37: Hoare triple {2490#(and (<= (+ main_~i~0 2) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} assume true; {2490#(and (<= (+ main_~i~0 2) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:05,944 INFO L273 TraceCheckUtils]: 38: Hoare triple {2490#(and (<= (+ main_~i~0 2) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {2490#(and (<= (+ main_~i~0 2) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:05,945 INFO L273 TraceCheckUtils]: 39: Hoare triple {2490#(and (<= (+ main_~i~0 2) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {2491#(and (<= (+ main_~i~0 1) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:05,946 INFO L273 TraceCheckUtils]: 40: Hoare triple {2491#(and (<= (+ main_~i~0 1) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} assume true; {2491#(and (<= (+ main_~i~0 1) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:05,947 INFO L273 TraceCheckUtils]: 41: Hoare triple {2491#(and (<= (+ main_~i~0 1) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {2491#(and (<= (+ main_~i~0 1) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:05,948 INFO L273 TraceCheckUtils]: 42: Hoare triple {2491#(and (<= (+ main_~i~0 1) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {2492#(and (<= main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:05,949 INFO L273 TraceCheckUtils]: 43: Hoare triple {2492#(and (<= main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} assume true; {2492#(and (<= main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:05,949 INFO L273 TraceCheckUtils]: 44: Hoare triple {2492#(and (<= main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {2493#(and (<= main_~i~0 |main_#t~mem11|) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:05,950 INFO L273 TraceCheckUtils]: 45: Hoare triple {2493#(and (<= main_~i~0 |main_#t~mem11|) (= main_~pd2~0.offset 0))} assume !(~i~0 <= #t~mem11);havoc #t~mem11; {2476#false} is VALID [2018-11-14 19:11:05,950 INFO L256 TraceCheckUtils]: 46: Hoare triple {2476#false} call #t~ret13 := check(~pd2~0.base, ~pd2~0.offset, ~i~0); {2475#true} is VALID [2018-11-14 19:11:05,950 INFO L273 TraceCheckUtils]: 47: Hoare triple {2475#true} ~s1.base, ~s1.offset := #in~s1.base, #in~s1.offset;~i := #in~i;call #t~mem6 := read~int(~s1.base, ~s1.offset + 8 + ~i * 4, 4);#res := (if #t~mem6 == ~i then 1 else 0);havoc #t~mem6; {2475#true} is VALID [2018-11-14 19:11:05,951 INFO L273 TraceCheckUtils]: 48: Hoare triple {2475#true} assume true; {2475#true} is VALID [2018-11-14 19:11:05,951 INFO L268 TraceCheckUtils]: 49: Hoare quadruple {2475#true} {2476#false} #60#return; {2476#false} is VALID [2018-11-14 19:11:05,951 INFO L273 TraceCheckUtils]: 50: Hoare triple {2476#false} assume -2147483648 <= #t~ret13 && #t~ret13 <= 2147483647; {2476#false} is VALID [2018-11-14 19:11:05,951 INFO L273 TraceCheckUtils]: 51: Hoare triple {2476#false} assume #t~ret13 == 0;havoc #t~ret13; {2476#false} is VALID [2018-11-14 19:11:05,952 INFO L273 TraceCheckUtils]: 52: Hoare triple {2476#false} assume !false; {2476#false} is VALID [2018-11-14 19:11:05,958 INFO L134 CoverageAnalysis]: Checked inductivity of 88 backedges. 0 proven. 84 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-14 19:11:05,958 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-14 19:11:05,958 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:11:05,970 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2018-11-14 19:11:06,019 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 8 check-sat command(s) [2018-11-14 19:11:06,019 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-14 19:11:06,035 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:11:06,036 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-14 19:11:06,097 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 8 [2018-11-14 19:11:06,101 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 8 treesize of output 7 [2018-11-14 19:11:06,104 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 19:11:06,106 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:11:06,112 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:11:06,113 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:21, output treesize:9 [2018-11-14 19:11:06,116 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 19:11:06,376 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 17 treesize of output 13 [2018-11-14 19:11:06,384 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 13 treesize of output 9 [2018-11-14 19:11:06,388 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 19:11:06,390 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:11:06,392 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:11:06,392 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 3 variables, input treesize:17, output treesize:5 [2018-11-14 19:11:06,394 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 19:11:06,422 INFO L256 TraceCheckUtils]: 0: Hoare triple {2475#true} call ULTIMATE.init(); {2475#true} is VALID [2018-11-14 19:11:06,422 INFO L273 TraceCheckUtils]: 1: Hoare triple {2475#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];call ~#d1~0.base, ~#d1~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base); {2475#true} is VALID [2018-11-14 19:11:06,423 INFO L273 TraceCheckUtils]: 2: Hoare triple {2475#true} assume true; {2475#true} is VALID [2018-11-14 19:11:06,423 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {2475#true} {2475#true} #62#return; {2475#true} is VALID [2018-11-14 19:11:06,423 INFO L256 TraceCheckUtils]: 4: Hoare triple {2475#true} call #t~ret14 := main(); {2475#true} is VALID [2018-11-14 19:11:06,423 INFO L256 TraceCheckUtils]: 5: Hoare triple {2475#true} call init(); {2475#true} is VALID [2018-11-14 19:11:06,424 INFO L273 TraceCheckUtils]: 6: Hoare triple {2475#true} assume -2147483648 <= #t~nondet0 && #t~nondet0 <= 2147483647;call write~int(#t~nondet0, ~#d1~0.base, ~#d1~0.offset + 0, 4);havoc #t~nondet0;assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;call write~int(#t~nondet1, ~#d1~0.base, ~#d1~0.offset + 4, 4);havoc #t~nondet1;assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;call write~int(#t~nondet2, ~#d2~0.base, ~#d2~0.offset + 0, 4);havoc #t~nondet2;assume -2147483648 <= #t~nondet3 && #t~nondet3 <= 2147483647;call write~int(#t~nondet3, ~#d2~0.base, ~#d2~0.offset + 4, 4);havoc #t~nondet3; {2475#true} is VALID [2018-11-14 19:11:06,424 INFO L273 TraceCheckUtils]: 7: Hoare triple {2475#true} assume true; {2475#true} is VALID [2018-11-14 19:11:06,424 INFO L268 TraceCheckUtils]: 8: Hoare quadruple {2475#true} {2475#true} #54#return; {2475#true} is VALID [2018-11-14 19:11:06,424 INFO L256 TraceCheckUtils]: 9: Hoare triple {2475#true} call #t~ret7.base, #t~ret7.offset := get_dummy(); {2475#true} is VALID [2018-11-14 19:11:06,424 INFO L273 TraceCheckUtils]: 10: Hoare triple {2475#true} assume #t~nondet4 % 256 != 0;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {2475#true} is VALID [2018-11-14 19:11:06,425 INFO L273 TraceCheckUtils]: 11: Hoare triple {2475#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {2475#true} is VALID [2018-11-14 19:11:06,425 INFO L273 TraceCheckUtils]: 12: Hoare triple {2475#true} assume true; {2475#true} is VALID [2018-11-14 19:11:06,425 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {2475#true} {2475#true} #56#return; {2475#true} is VALID [2018-11-14 19:11:06,425 INFO L273 TraceCheckUtils]: 14: Hoare triple {2475#true} ~pd1~0.base, ~pd1~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {2475#true} is VALID [2018-11-14 19:11:06,425 INFO L256 TraceCheckUtils]: 15: Hoare triple {2475#true} call #t~ret8.base, #t~ret8.offset := get_dummy(); {2475#true} is VALID [2018-11-14 19:11:06,425 INFO L273 TraceCheckUtils]: 16: Hoare triple {2475#true} assume #t~nondet4 % 256 != 0;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {2475#true} is VALID [2018-11-14 19:11:06,425 INFO L273 TraceCheckUtils]: 17: Hoare triple {2475#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {2475#true} is VALID [2018-11-14 19:11:06,426 INFO L273 TraceCheckUtils]: 18: Hoare triple {2475#true} assume true; {2475#true} is VALID [2018-11-14 19:11:06,426 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {2475#true} {2475#true} #58#return; {2475#true} is VALID [2018-11-14 19:11:06,426 INFO L273 TraceCheckUtils]: 20: Hoare triple {2475#true} ~pd2~0.base, ~pd2~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset;assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647;~i~0 := #t~nondet9;havoc #t~nondet9; {2475#true} is VALID [2018-11-14 19:11:06,427 INFO L273 TraceCheckUtils]: 21: Hoare triple {2475#true} assume (((~pd1~0.base != 0 || ~pd1~0.offset != 0) && ~pd1~0.base == ~pd2~0.base && ~pd1~0.offset == ~pd2~0.offset) && ~i~0 >= 0) && ~i~0 < 10;call write~int(~i~0, ~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~pa~0.base, ~pa~0.offset := ~pd1~0.base, ~pd1~0.offset + 8 + ~i~0 * 4;call #t~mem10 := read~int(~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~i~0 := #t~mem10 - 10;havoc #t~mem10; {2560#(<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:06,427 INFO L273 TraceCheckUtils]: 22: Hoare triple {2560#(<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume true; {2560#(<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:06,428 INFO L273 TraceCheckUtils]: 23: Hoare triple {2560#(<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {2560#(<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:06,428 INFO L273 TraceCheckUtils]: 24: Hoare triple {2560#(<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {2570#(<= (+ main_~i~0 9) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:06,429 INFO L273 TraceCheckUtils]: 25: Hoare triple {2570#(<= (+ main_~i~0 9) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume true; {2570#(<= (+ main_~i~0 9) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:06,429 INFO L273 TraceCheckUtils]: 26: Hoare triple {2570#(<= (+ main_~i~0 9) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {2570#(<= (+ main_~i~0 9) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:06,429 INFO L273 TraceCheckUtils]: 27: Hoare triple {2570#(<= (+ main_~i~0 9) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {2580#(<= (+ main_~i~0 8) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:06,430 INFO L273 TraceCheckUtils]: 28: Hoare triple {2580#(<= (+ main_~i~0 8) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume true; {2580#(<= (+ main_~i~0 8) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:06,430 INFO L273 TraceCheckUtils]: 29: Hoare triple {2580#(<= (+ main_~i~0 8) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {2580#(<= (+ main_~i~0 8) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:06,431 INFO L273 TraceCheckUtils]: 30: Hoare triple {2580#(<= (+ main_~i~0 8) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {2590#(<= (+ main_~i~0 7) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:06,431 INFO L273 TraceCheckUtils]: 31: Hoare triple {2590#(<= (+ main_~i~0 7) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume true; {2590#(<= (+ main_~i~0 7) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:06,432 INFO L273 TraceCheckUtils]: 32: Hoare triple {2590#(<= (+ main_~i~0 7) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {2590#(<= (+ main_~i~0 7) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:06,433 INFO L273 TraceCheckUtils]: 33: Hoare triple {2590#(<= (+ main_~i~0 7) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {2600#(<= (+ main_~i~0 6) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:06,433 INFO L273 TraceCheckUtils]: 34: Hoare triple {2600#(<= (+ main_~i~0 6) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume true; {2600#(<= (+ main_~i~0 6) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:06,434 INFO L273 TraceCheckUtils]: 35: Hoare triple {2600#(<= (+ main_~i~0 6) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {2600#(<= (+ main_~i~0 6) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:06,435 INFO L273 TraceCheckUtils]: 36: Hoare triple {2600#(<= (+ main_~i~0 6) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {2610#(<= (+ main_~i~0 5) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:06,436 INFO L273 TraceCheckUtils]: 37: Hoare triple {2610#(<= (+ main_~i~0 5) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume true; {2610#(<= (+ main_~i~0 5) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:06,436 INFO L273 TraceCheckUtils]: 38: Hoare triple {2610#(<= (+ main_~i~0 5) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {2610#(<= (+ main_~i~0 5) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:06,437 INFO L273 TraceCheckUtils]: 39: Hoare triple {2610#(<= (+ main_~i~0 5) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {2620#(<= (+ main_~i~0 4) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:06,438 INFO L273 TraceCheckUtils]: 40: Hoare triple {2620#(<= (+ main_~i~0 4) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume true; {2620#(<= (+ main_~i~0 4) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:06,438 INFO L273 TraceCheckUtils]: 41: Hoare triple {2620#(<= (+ main_~i~0 4) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {2620#(<= (+ main_~i~0 4) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:06,439 INFO L273 TraceCheckUtils]: 42: Hoare triple {2620#(<= (+ main_~i~0 4) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {2630#(<= (+ main_~i~0 3) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:06,440 INFO L273 TraceCheckUtils]: 43: Hoare triple {2630#(<= (+ main_~i~0 3) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume true; {2630#(<= (+ main_~i~0 3) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:06,441 INFO L273 TraceCheckUtils]: 44: Hoare triple {2630#(<= (+ main_~i~0 3) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {2637#(<= (+ main_~i~0 3) |main_#t~mem11|)} is VALID [2018-11-14 19:11:06,441 INFO L273 TraceCheckUtils]: 45: Hoare triple {2637#(<= (+ main_~i~0 3) |main_#t~mem11|)} assume !(~i~0 <= #t~mem11);havoc #t~mem11; {2476#false} is VALID [2018-11-14 19:11:06,442 INFO L256 TraceCheckUtils]: 46: Hoare triple {2476#false} call #t~ret13 := check(~pd2~0.base, ~pd2~0.offset, ~i~0); {2476#false} is VALID [2018-11-14 19:11:06,442 INFO L273 TraceCheckUtils]: 47: Hoare triple {2476#false} ~s1.base, ~s1.offset := #in~s1.base, #in~s1.offset;~i := #in~i;call #t~mem6 := read~int(~s1.base, ~s1.offset + 8 + ~i * 4, 4);#res := (if #t~mem6 == ~i then 1 else 0);havoc #t~mem6; {2476#false} is VALID [2018-11-14 19:11:06,442 INFO L273 TraceCheckUtils]: 48: Hoare triple {2476#false} assume true; {2476#false} is VALID [2018-11-14 19:11:06,442 INFO L268 TraceCheckUtils]: 49: Hoare quadruple {2476#false} {2476#false} #60#return; {2476#false} is VALID [2018-11-14 19:11:06,443 INFO L273 TraceCheckUtils]: 50: Hoare triple {2476#false} assume -2147483648 <= #t~ret13 && #t~ret13 <= 2147483647; {2476#false} is VALID [2018-11-14 19:11:06,443 INFO L273 TraceCheckUtils]: 51: Hoare triple {2476#false} assume #t~ret13 == 0;havoc #t~ret13; {2476#false} is VALID [2018-11-14 19:11:06,443 INFO L273 TraceCheckUtils]: 52: Hoare triple {2476#false} assume !false; {2476#false} is VALID [2018-11-14 19:11:06,447 INFO L134 CoverageAnalysis]: Checked inductivity of 88 backedges. 0 proven. 84 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-14 19:11:06,467 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-14 19:11:06,468 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [19, 11] total 28 [2018-11-14 19:11:06,468 INFO L78 Accepts]: Start accepts. Automaton has 28 states. Word has length 53 [2018-11-14 19:11:06,469 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 19:11:06,469 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 28 states. [2018-11-14 19:11:06,563 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 94 edges. 94 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:11:06,563 INFO L459 AbstractCegarLoop]: Interpolant automaton has 28 states [2018-11-14 19:11:06,564 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 28 interpolants. [2018-11-14 19:11:06,564 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=143, Invalid=613, Unknown=0, NotChecked=0, Total=756 [2018-11-14 19:11:06,565 INFO L87 Difference]: Start difference. First operand 55 states and 59 transitions. Second operand 28 states. [2018-11-14 19:11:10,152 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:11:10,152 INFO L93 Difference]: Finished difference Result 111 states and 120 transitions. [2018-11-14 19:11:10,152 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 47 states. [2018-11-14 19:11:10,153 INFO L78 Accepts]: Start accepts. Automaton has 28 states. Word has length 53 [2018-11-14 19:11:10,153 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 19:11:10,153 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 28 states. [2018-11-14 19:11:10,158 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 47 states to 47 states and 120 transitions. [2018-11-14 19:11:10,158 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 28 states. [2018-11-14 19:11:10,161 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 47 states to 47 states and 120 transitions. [2018-11-14 19:11:10,162 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 47 states and 120 transitions. [2018-11-14 19:11:10,316 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 120 edges. 120 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:11:10,319 INFO L225 Difference]: With dead ends: 111 [2018-11-14 19:11:10,319 INFO L226 Difference]: Without dead ends: 103 [2018-11-14 19:11:10,322 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 117 GetRequests, 46 SyntacticMatches, 3 SemanticMatches, 68 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1051 ImplicationChecksByTransitivity, 2.5s TimeCoverageRelationStatistics Valid=1006, Invalid=3824, Unknown=0, NotChecked=0, Total=4830 [2018-11-14 19:11:10,322 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 103 states. [2018-11-14 19:11:10,555 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 103 to 69. [2018-11-14 19:11:10,555 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 19:11:10,555 INFO L82 GeneralOperation]: Start isEquivalent. First operand 103 states. Second operand 69 states. [2018-11-14 19:11:10,555 INFO L74 IsIncluded]: Start isIncluded. First operand 103 states. Second operand 69 states. [2018-11-14 19:11:10,556 INFO L87 Difference]: Start difference. First operand 103 states. Second operand 69 states. [2018-11-14 19:11:10,560 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:11:10,560 INFO L93 Difference]: Finished difference Result 103 states and 108 transitions. [2018-11-14 19:11:10,560 INFO L276 IsEmpty]: Start isEmpty. Operand 103 states and 108 transitions. [2018-11-14 19:11:10,561 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:11:10,561 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:11:10,561 INFO L74 IsIncluded]: Start isIncluded. First operand 69 states. Second operand 103 states. [2018-11-14 19:11:10,561 INFO L87 Difference]: Start difference. First operand 69 states. Second operand 103 states. [2018-11-14 19:11:10,565 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:11:10,565 INFO L93 Difference]: Finished difference Result 103 states and 108 transitions. [2018-11-14 19:11:10,566 INFO L276 IsEmpty]: Start isEmpty. Operand 103 states and 108 transitions. [2018-11-14 19:11:10,566 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:11:10,566 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:11:10,566 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 19:11:10,567 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 19:11:10,567 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 69 states. [2018-11-14 19:11:10,569 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 69 states to 69 states and 73 transitions. [2018-11-14 19:11:10,569 INFO L78 Accepts]: Start accepts. Automaton has 69 states and 73 transitions. Word has length 53 [2018-11-14 19:11:10,570 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 19:11:10,570 INFO L480 AbstractCegarLoop]: Abstraction has 69 states and 73 transitions. [2018-11-14 19:11:10,570 INFO L481 AbstractCegarLoop]: Interpolant automaton has 28 states. [2018-11-14 19:11:10,570 INFO L276 IsEmpty]: Start isEmpty. Operand 69 states and 73 transitions. [2018-11-14 19:11:10,571 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 57 [2018-11-14 19:11:10,571 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:11:10,571 INFO L375 BasicCegarLoop]: trace histogram [9, 9, 8, 2, 2, 2, 1, 1, 1, 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:11:10,571 INFO L423 AbstractCegarLoop]: === Iteration 9 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:11:10,572 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:11:10,572 INFO L82 PathProgramCache]: Analyzing trace with hash -1141453739, now seen corresponding path program 2 times [2018-11-14 19:11:10,572 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:11:10,572 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:11:10,573 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:11:10,573 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-14 19:11:10,573 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:11:10,591 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:11:11,362 INFO L256 TraceCheckUtils]: 0: Hoare triple {3194#true} call ULTIMATE.init(); {3194#true} is VALID [2018-11-14 19:11:11,363 INFO L273 TraceCheckUtils]: 1: Hoare triple {3194#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];call ~#d1~0.base, ~#d1~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base); {3196#(= 0 |~#d2~0.offset|)} is VALID [2018-11-14 19:11:11,363 INFO L273 TraceCheckUtils]: 2: Hoare triple {3196#(= 0 |~#d2~0.offset|)} assume true; {3196#(= 0 |~#d2~0.offset|)} is VALID [2018-11-14 19:11:11,363 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {3196#(= 0 |~#d2~0.offset|)} {3194#true} #62#return; {3196#(= 0 |~#d2~0.offset|)} is VALID [2018-11-14 19:11:11,364 INFO L256 TraceCheckUtils]: 4: Hoare triple {3196#(= 0 |~#d2~0.offset|)} call #t~ret14 := main(); {3196#(= 0 |~#d2~0.offset|)} is VALID [2018-11-14 19:11:11,364 INFO L256 TraceCheckUtils]: 5: Hoare triple {3196#(= 0 |~#d2~0.offset|)} call init(); {3194#true} is VALID [2018-11-14 19:11:11,364 INFO L273 TraceCheckUtils]: 6: Hoare triple {3194#true} assume -2147483648 <= #t~nondet0 && #t~nondet0 <= 2147483647;call write~int(#t~nondet0, ~#d1~0.base, ~#d1~0.offset + 0, 4);havoc #t~nondet0;assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;call write~int(#t~nondet1, ~#d1~0.base, ~#d1~0.offset + 4, 4);havoc #t~nondet1;assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;call write~int(#t~nondet2, ~#d2~0.base, ~#d2~0.offset + 0, 4);havoc #t~nondet2;assume -2147483648 <= #t~nondet3 && #t~nondet3 <= 2147483647;call write~int(#t~nondet3, ~#d2~0.base, ~#d2~0.offset + 4, 4);havoc #t~nondet3; {3194#true} is VALID [2018-11-14 19:11:11,364 INFO L273 TraceCheckUtils]: 7: Hoare triple {3194#true} assume true; {3194#true} is VALID [2018-11-14 19:11:11,365 INFO L268 TraceCheckUtils]: 8: Hoare quadruple {3194#true} {3196#(= 0 |~#d2~0.offset|)} #54#return; {3196#(= 0 |~#d2~0.offset|)} is VALID [2018-11-14 19:11:11,365 INFO L256 TraceCheckUtils]: 9: Hoare triple {3196#(= 0 |~#d2~0.offset|)} call #t~ret7.base, #t~ret7.offset := get_dummy(); {3194#true} is VALID [2018-11-14 19:11:11,365 INFO L273 TraceCheckUtils]: 10: Hoare triple {3194#true} assume !(#t~nondet4 % 256 != 0);#t~ite5.base, #t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {3197#(and (= |get_dummy_#t~ite5.base| |~#d2~0.base|) (= |get_dummy_#t~ite5.offset| |~#d2~0.offset|))} is VALID [2018-11-14 19:11:11,366 INFO L273 TraceCheckUtils]: 11: Hoare triple {3197#(and (= |get_dummy_#t~ite5.base| |~#d2~0.base|) (= |get_dummy_#t~ite5.offset| |~#d2~0.offset|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {3198#(and (= |get_dummy_#res.offset| |~#d2~0.offset|) (= |get_dummy_#res.base| |~#d2~0.base|))} is VALID [2018-11-14 19:11:11,366 INFO L273 TraceCheckUtils]: 12: Hoare triple {3198#(and (= |get_dummy_#res.offset| |~#d2~0.offset|) (= |get_dummy_#res.base| |~#d2~0.base|))} assume true; {3198#(and (= |get_dummy_#res.offset| |~#d2~0.offset|) (= |get_dummy_#res.base| |~#d2~0.base|))} is VALID [2018-11-14 19:11:11,367 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {3198#(and (= |get_dummy_#res.offset| |~#d2~0.offset|) (= |get_dummy_#res.base| |~#d2~0.base|))} {3196#(= 0 |~#d2~0.offset|)} #56#return; {3199#(and (= 0 |main_#t~ret7.offset|) (= 0 |~#d2~0.offset|) (= |main_#t~ret7.base| |~#d2~0.base|))} is VALID [2018-11-14 19:11:11,368 INFO L273 TraceCheckUtils]: 14: Hoare triple {3199#(and (= 0 |main_#t~ret7.offset|) (= 0 |~#d2~0.offset|) (= |main_#t~ret7.base| |~#d2~0.base|))} ~pd1~0.base, ~pd1~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {3200#(and (= 0 |~#d2~0.offset|) (= main_~pd1~0.base |~#d2~0.base|) (= 0 main_~pd1~0.offset))} is VALID [2018-11-14 19:11:11,368 INFO L256 TraceCheckUtils]: 15: Hoare triple {3200#(and (= 0 |~#d2~0.offset|) (= main_~pd1~0.base |~#d2~0.base|) (= 0 main_~pd1~0.offset))} call #t~ret8.base, #t~ret8.offset := get_dummy(); {3194#true} is VALID [2018-11-14 19:11:11,368 INFO L273 TraceCheckUtils]: 16: Hoare triple {3194#true} assume !(#t~nondet4 % 256 != 0);#t~ite5.base, #t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {3197#(and (= |get_dummy_#t~ite5.base| |~#d2~0.base|) (= |get_dummy_#t~ite5.offset| |~#d2~0.offset|))} is VALID [2018-11-14 19:11:11,368 INFO L273 TraceCheckUtils]: 17: Hoare triple {3197#(and (= |get_dummy_#t~ite5.base| |~#d2~0.base|) (= |get_dummy_#t~ite5.offset| |~#d2~0.offset|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {3198#(and (= |get_dummy_#res.offset| |~#d2~0.offset|) (= |get_dummy_#res.base| |~#d2~0.base|))} is VALID [2018-11-14 19:11:11,369 INFO L273 TraceCheckUtils]: 18: Hoare triple {3198#(and (= |get_dummy_#res.offset| |~#d2~0.offset|) (= |get_dummy_#res.base| |~#d2~0.base|))} assume true; {3198#(and (= |get_dummy_#res.offset| |~#d2~0.offset|) (= |get_dummy_#res.base| |~#d2~0.base|))} is VALID [2018-11-14 19:11:11,370 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {3198#(and (= |get_dummy_#res.offset| |~#d2~0.offset|) (= |get_dummy_#res.base| |~#d2~0.base|))} {3200#(and (= 0 |~#d2~0.offset|) (= main_~pd1~0.base |~#d2~0.base|) (= 0 main_~pd1~0.offset))} #58#return; {3201#(and (= main_~pd1~0.base |main_#t~ret8.base|) (= 0 main_~pd1~0.offset) (= 0 |main_#t~ret8.offset|))} is VALID [2018-11-14 19:11:11,371 INFO L273 TraceCheckUtils]: 20: Hoare triple {3201#(and (= main_~pd1~0.base |main_#t~ret8.base|) (= 0 main_~pd1~0.offset) (= 0 |main_#t~ret8.offset|))} ~pd2~0.base, ~pd2~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset;assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647;~i~0 := #t~nondet9;havoc #t~nondet9; {3202#(and (= 0 main_~pd1~0.offset) (= main_~pd2~0.offset 0) (= main_~pd2~0.base main_~pd1~0.base))} is VALID [2018-11-14 19:11:11,372 INFO L273 TraceCheckUtils]: 21: Hoare triple {3202#(and (= 0 main_~pd1~0.offset) (= main_~pd2~0.offset 0) (= main_~pd2~0.base main_~pd1~0.base))} assume (((~pd1~0.base != 0 || ~pd1~0.offset != 0) && ~pd1~0.base == ~pd2~0.base && ~pd1~0.offset == ~pd2~0.offset) && ~i~0 >= 0) && ~i~0 < 10;call write~int(~i~0, ~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~pa~0.base, ~pa~0.offset := ~pd1~0.base, ~pd1~0.offset + 8 + ~i~0 * 4;call #t~mem10 := read~int(~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~i~0 := #t~mem10 - 10;havoc #t~mem10; {3203#(and (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.base main_~pa~0.base) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:11,373 INFO L273 TraceCheckUtils]: 22: Hoare triple {3203#(and (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.base main_~pa~0.base) (= main_~pd2~0.offset 0))} assume true; {3203#(and (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.base main_~pa~0.base) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:11,374 INFO L273 TraceCheckUtils]: 23: Hoare triple {3203#(and (<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.base main_~pa~0.base) (= main_~pd2~0.offset 0))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {3204#(and (= |main_#t~mem11| (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (<= (+ main_~i~0 8) |main_#t~mem11|) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:11,376 INFO L273 TraceCheckUtils]: 24: Hoare triple {3204#(and (= |main_#t~mem11| (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (<= (+ main_~i~0 8) |main_#t~mem11|) (= main_~pd2~0.offset 0))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {3205#(and (<= (+ main_~i~0 7) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:11,377 INFO L273 TraceCheckUtils]: 25: Hoare triple {3205#(and (<= (+ main_~i~0 7) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} assume true; {3205#(and (<= (+ main_~i~0 7) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:11,391 INFO L273 TraceCheckUtils]: 26: Hoare triple {3205#(and (<= (+ main_~i~0 7) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {3205#(and (<= (+ main_~i~0 7) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:11,392 INFO L273 TraceCheckUtils]: 27: Hoare triple {3205#(and (<= (+ main_~i~0 7) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {3206#(and (<= (+ main_~i~0 6) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:11,393 INFO L273 TraceCheckUtils]: 28: Hoare triple {3206#(and (<= (+ main_~i~0 6) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} assume true; {3206#(and (<= (+ main_~i~0 6) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:11,393 INFO L273 TraceCheckUtils]: 29: Hoare triple {3206#(and (<= (+ main_~i~0 6) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {3206#(and (<= (+ main_~i~0 6) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:11,394 INFO L273 TraceCheckUtils]: 30: Hoare triple {3206#(and (<= (+ main_~i~0 6) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {3207#(and (= main_~pd2~0.offset 0) (<= (+ main_~i~0 5) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)))} is VALID [2018-11-14 19:11:11,394 INFO L273 TraceCheckUtils]: 31: Hoare triple {3207#(and (= main_~pd2~0.offset 0) (<= (+ main_~i~0 5) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)))} assume true; {3207#(and (= main_~pd2~0.offset 0) (<= (+ main_~i~0 5) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)))} is VALID [2018-11-14 19:11:11,395 INFO L273 TraceCheckUtils]: 32: Hoare triple {3207#(and (= main_~pd2~0.offset 0) (<= (+ main_~i~0 5) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {3207#(and (= main_~pd2~0.offset 0) (<= (+ main_~i~0 5) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)))} is VALID [2018-11-14 19:11:11,395 INFO L273 TraceCheckUtils]: 33: Hoare triple {3207#(and (= main_~pd2~0.offset 0) (<= (+ main_~i~0 5) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {3208#(and (<= (+ main_~i~0 4) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:11,396 INFO L273 TraceCheckUtils]: 34: Hoare triple {3208#(and (<= (+ main_~i~0 4) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} assume true; {3208#(and (<= (+ main_~i~0 4) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:11,396 INFO L273 TraceCheckUtils]: 35: Hoare triple {3208#(and (<= (+ main_~i~0 4) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {3208#(and (<= (+ main_~i~0 4) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:11,397 INFO L273 TraceCheckUtils]: 36: Hoare triple {3208#(and (<= (+ main_~i~0 4) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {3209#(and (<= (+ main_~i~0 3) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:11,398 INFO L273 TraceCheckUtils]: 37: Hoare triple {3209#(and (<= (+ main_~i~0 3) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} assume true; {3209#(and (<= (+ main_~i~0 3) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:11,399 INFO L273 TraceCheckUtils]: 38: Hoare triple {3209#(and (<= (+ main_~i~0 3) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {3209#(and (<= (+ main_~i~0 3) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:11,400 INFO L273 TraceCheckUtils]: 39: Hoare triple {3209#(and (<= (+ main_~i~0 3) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {3210#(and (<= (+ main_~i~0 2) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:11,400 INFO L273 TraceCheckUtils]: 40: Hoare triple {3210#(and (<= (+ main_~i~0 2) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} assume true; {3210#(and (<= (+ main_~i~0 2) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:11,401 INFO L273 TraceCheckUtils]: 41: Hoare triple {3210#(and (<= (+ main_~i~0 2) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {3210#(and (<= (+ main_~i~0 2) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:11,402 INFO L273 TraceCheckUtils]: 42: Hoare triple {3210#(and (<= (+ main_~i~0 2) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {3211#(and (<= (+ main_~i~0 1) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:11,403 INFO L273 TraceCheckUtils]: 43: Hoare triple {3211#(and (<= (+ main_~i~0 1) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} assume true; {3211#(and (<= (+ main_~i~0 1) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:11,403 INFO L273 TraceCheckUtils]: 44: Hoare triple {3211#(and (<= (+ main_~i~0 1) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {3211#(and (<= (+ main_~i~0 1) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:11,404 INFO L273 TraceCheckUtils]: 45: Hoare triple {3211#(and (<= (+ main_~i~0 1) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {3212#(and (<= main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:11,405 INFO L273 TraceCheckUtils]: 46: Hoare triple {3212#(and (<= main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} assume true; {3212#(and (<= main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:11,406 INFO L273 TraceCheckUtils]: 47: Hoare triple {3212#(and (<= main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset 0))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {3213#(and (<= main_~i~0 |main_#t~mem11|) (= main_~pd2~0.offset 0))} is VALID [2018-11-14 19:11:11,406 INFO L273 TraceCheckUtils]: 48: Hoare triple {3213#(and (<= main_~i~0 |main_#t~mem11|) (= main_~pd2~0.offset 0))} assume !(~i~0 <= #t~mem11);havoc #t~mem11; {3195#false} is VALID [2018-11-14 19:11:11,406 INFO L256 TraceCheckUtils]: 49: Hoare triple {3195#false} call #t~ret13 := check(~pd2~0.base, ~pd2~0.offset, ~i~0); {3194#true} is VALID [2018-11-14 19:11:11,407 INFO L273 TraceCheckUtils]: 50: Hoare triple {3194#true} ~s1.base, ~s1.offset := #in~s1.base, #in~s1.offset;~i := #in~i;call #t~mem6 := read~int(~s1.base, ~s1.offset + 8 + ~i * 4, 4);#res := (if #t~mem6 == ~i then 1 else 0);havoc #t~mem6; {3194#true} is VALID [2018-11-14 19:11:11,407 INFO L273 TraceCheckUtils]: 51: Hoare triple {3194#true} assume true; {3194#true} is VALID [2018-11-14 19:11:11,407 INFO L268 TraceCheckUtils]: 52: Hoare quadruple {3194#true} {3195#false} #60#return; {3195#false} is VALID [2018-11-14 19:11:11,407 INFO L273 TraceCheckUtils]: 53: Hoare triple {3195#false} assume -2147483648 <= #t~ret13 && #t~ret13 <= 2147483647; {3195#false} is VALID [2018-11-14 19:11:11,408 INFO L273 TraceCheckUtils]: 54: Hoare triple {3195#false} assume #t~ret13 == 0;havoc #t~ret13; {3195#false} is VALID [2018-11-14 19:11:11,408 INFO L273 TraceCheckUtils]: 55: Hoare triple {3195#false} assume !false; {3195#false} is VALID [2018-11-14 19:11:11,414 INFO L134 CoverageAnalysis]: Checked inductivity of 112 backedges. 0 proven. 108 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-14 19:11:11,415 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-14 19:11:11,415 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:11:11,423 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST1 [2018-11-14 19:11:11,454 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2018-11-14 19:11:11,455 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-14 19:11:11,474 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 19:11:11,476 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-14 19:11:11,572 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 8 [2018-11-14 19:11:11,574 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 8 treesize of output 7 [2018-11-14 19:11:11,576 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 19:11:11,578 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:11:11,582 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:11:11,582 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:21, output treesize:9 [2018-11-14 19:11:11,585 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 19:11:11,939 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 17 treesize of output 13 [2018-11-14 19:11:11,950 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 13 treesize of output 9 [2018-11-14 19:11:11,968 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 19:11:11,970 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:11:11,971 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-14 19:11:11,971 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 3 variables, input treesize:17, output treesize:5 [2018-11-14 19:11:11,974 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 19:11:12,004 INFO L256 TraceCheckUtils]: 0: Hoare triple {3194#true} call ULTIMATE.init(); {3194#true} is VALID [2018-11-14 19:11:12,004 INFO L273 TraceCheckUtils]: 1: Hoare triple {3194#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];call ~#d1~0.base, ~#d1~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 0, 4);call write~unchecked~int(0, ~#d1~0.base, ~#d1~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d1~0.base);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.alloc(72);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 0, 4);call write~unchecked~int(0, ~#d2~0.base, ~#d2~0.offset + 4, 4);#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, ~#d2~0.base); {3194#true} is VALID [2018-11-14 19:11:12,005 INFO L273 TraceCheckUtils]: 2: Hoare triple {3194#true} assume true; {3194#true} is VALID [2018-11-14 19:11:12,005 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {3194#true} {3194#true} #62#return; {3194#true} is VALID [2018-11-14 19:11:12,005 INFO L256 TraceCheckUtils]: 4: Hoare triple {3194#true} call #t~ret14 := main(); {3194#true} is VALID [2018-11-14 19:11:12,005 INFO L256 TraceCheckUtils]: 5: Hoare triple {3194#true} call init(); {3194#true} is VALID [2018-11-14 19:11:12,005 INFO L273 TraceCheckUtils]: 6: Hoare triple {3194#true} assume -2147483648 <= #t~nondet0 && #t~nondet0 <= 2147483647;call write~int(#t~nondet0, ~#d1~0.base, ~#d1~0.offset + 0, 4);havoc #t~nondet0;assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;call write~int(#t~nondet1, ~#d1~0.base, ~#d1~0.offset + 4, 4);havoc #t~nondet1;assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;call write~int(#t~nondet2, ~#d2~0.base, ~#d2~0.offset + 0, 4);havoc #t~nondet2;assume -2147483648 <= #t~nondet3 && #t~nondet3 <= 2147483647;call write~int(#t~nondet3, ~#d2~0.base, ~#d2~0.offset + 4, 4);havoc #t~nondet3; {3194#true} is VALID [2018-11-14 19:11:12,006 INFO L273 TraceCheckUtils]: 7: Hoare triple {3194#true} assume true; {3194#true} is VALID [2018-11-14 19:11:12,006 INFO L268 TraceCheckUtils]: 8: Hoare quadruple {3194#true} {3194#true} #54#return; {3194#true} is VALID [2018-11-14 19:11:12,006 INFO L256 TraceCheckUtils]: 9: Hoare triple {3194#true} call #t~ret7.base, #t~ret7.offset := get_dummy(); {3194#true} is VALID [2018-11-14 19:11:12,006 INFO L273 TraceCheckUtils]: 10: Hoare triple {3194#true} assume !(#t~nondet4 % 256 != 0);#t~ite5.base, #t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {3194#true} is VALID [2018-11-14 19:11:12,006 INFO L273 TraceCheckUtils]: 11: Hoare triple {3194#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {3194#true} is VALID [2018-11-14 19:11:12,006 INFO L273 TraceCheckUtils]: 12: Hoare triple {3194#true} assume true; {3194#true} is VALID [2018-11-14 19:11:12,007 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {3194#true} {3194#true} #56#return; {3194#true} is VALID [2018-11-14 19:11:12,007 INFO L273 TraceCheckUtils]: 14: Hoare triple {3194#true} ~pd1~0.base, ~pd1~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {3194#true} is VALID [2018-11-14 19:11:12,007 INFO L256 TraceCheckUtils]: 15: Hoare triple {3194#true} call #t~ret8.base, #t~ret8.offset := get_dummy(); {3194#true} is VALID [2018-11-14 19:11:12,007 INFO L273 TraceCheckUtils]: 16: Hoare triple {3194#true} assume !(#t~nondet4 % 256 != 0);#t~ite5.base, #t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {3265#(= |~#d2~0.base| |get_dummy_#t~ite5.base|)} is VALID [2018-11-14 19:11:12,008 INFO L273 TraceCheckUtils]: 17: Hoare triple {3265#(= |~#d2~0.base| |get_dummy_#t~ite5.base|)} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {3269#(= |get_dummy_#res.base| |~#d2~0.base|)} is VALID [2018-11-14 19:11:12,008 INFO L273 TraceCheckUtils]: 18: Hoare triple {3269#(= |get_dummy_#res.base| |~#d2~0.base|)} assume true; {3269#(= |get_dummy_#res.base| |~#d2~0.base|)} is VALID [2018-11-14 19:11:12,008 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {3269#(= |get_dummy_#res.base| |~#d2~0.base|)} {3194#true} #58#return; {3194#true} is VALID [2018-11-14 19:11:12,008 INFO L273 TraceCheckUtils]: 20: Hoare triple {3194#true} ~pd2~0.base, ~pd2~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset;assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647;~i~0 := #t~nondet9;havoc #t~nondet9; {3194#true} is VALID [2018-11-14 19:11:12,010 INFO L273 TraceCheckUtils]: 21: Hoare triple {3194#true} assume (((~pd1~0.base != 0 || ~pd1~0.offset != 0) && ~pd1~0.base == ~pd2~0.base && ~pd1~0.offset == ~pd2~0.offset) && ~i~0 >= 0) && ~i~0 < 10;call write~int(~i~0, ~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~pa~0.base, ~pa~0.offset := ~pd1~0.base, ~pd1~0.offset + 8 + ~i~0 * 4;call #t~mem10 := read~int(~pd2~0.base, ~pd2~0.offset + 8 + ~i~0 * 4, 4);~i~0 := #t~mem10 - 10;havoc #t~mem10; {3282#(<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:12,010 INFO L273 TraceCheckUtils]: 22: Hoare triple {3282#(<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume true; {3282#(<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:12,010 INFO L273 TraceCheckUtils]: 23: Hoare triple {3282#(<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {3282#(<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:12,011 INFO L273 TraceCheckUtils]: 24: Hoare triple {3282#(<= (+ main_~i~0 10) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {3292#(<= (+ main_~i~0 9) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:12,011 INFO L273 TraceCheckUtils]: 25: Hoare triple {3292#(<= (+ main_~i~0 9) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume true; {3292#(<= (+ main_~i~0 9) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:12,012 INFO L273 TraceCheckUtils]: 26: Hoare triple {3292#(<= (+ main_~i~0 9) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {3292#(<= (+ main_~i~0 9) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:12,013 INFO L273 TraceCheckUtils]: 27: Hoare triple {3292#(<= (+ main_~i~0 9) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {3302#(<= (+ main_~i~0 8) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:12,014 INFO L273 TraceCheckUtils]: 28: Hoare triple {3302#(<= (+ main_~i~0 8) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume true; {3302#(<= (+ main_~i~0 8) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:12,014 INFO L273 TraceCheckUtils]: 29: Hoare triple {3302#(<= (+ main_~i~0 8) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {3302#(<= (+ main_~i~0 8) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:12,015 INFO L273 TraceCheckUtils]: 30: Hoare triple {3302#(<= (+ main_~i~0 8) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {3312#(<= (+ main_~i~0 7) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:12,016 INFO L273 TraceCheckUtils]: 31: Hoare triple {3312#(<= (+ main_~i~0 7) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume true; {3312#(<= (+ main_~i~0 7) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:12,016 INFO L273 TraceCheckUtils]: 32: Hoare triple {3312#(<= (+ main_~i~0 7) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {3312#(<= (+ main_~i~0 7) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:12,017 INFO L273 TraceCheckUtils]: 33: Hoare triple {3312#(<= (+ main_~i~0 7) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {3322#(<= (+ main_~i~0 6) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:12,018 INFO L273 TraceCheckUtils]: 34: Hoare triple {3322#(<= (+ main_~i~0 6) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume true; {3322#(<= (+ main_~i~0 6) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:12,019 INFO L273 TraceCheckUtils]: 35: Hoare triple {3322#(<= (+ main_~i~0 6) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {3322#(<= (+ main_~i~0 6) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:12,020 INFO L273 TraceCheckUtils]: 36: Hoare triple {3322#(<= (+ main_~i~0 6) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {3332#(<= (+ main_~i~0 5) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:12,020 INFO L273 TraceCheckUtils]: 37: Hoare triple {3332#(<= (+ main_~i~0 5) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume true; {3332#(<= (+ main_~i~0 5) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:12,021 INFO L273 TraceCheckUtils]: 38: Hoare triple {3332#(<= (+ main_~i~0 5) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {3332#(<= (+ main_~i~0 5) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:12,022 INFO L273 TraceCheckUtils]: 39: Hoare triple {3332#(<= (+ main_~i~0 5) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {3342#(<= (+ main_~i~0 4) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:12,022 INFO L273 TraceCheckUtils]: 40: Hoare triple {3342#(<= (+ main_~i~0 4) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume true; {3342#(<= (+ main_~i~0 4) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:12,023 INFO L273 TraceCheckUtils]: 41: Hoare triple {3342#(<= (+ main_~i~0 4) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {3342#(<= (+ main_~i~0 4) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:12,024 INFO L273 TraceCheckUtils]: 42: Hoare triple {3342#(<= (+ main_~i~0 4) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {3352#(<= (+ main_~i~0 3) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:12,024 INFO L273 TraceCheckUtils]: 43: Hoare triple {3352#(<= (+ main_~i~0 3) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume true; {3352#(<= (+ main_~i~0 3) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:12,025 INFO L273 TraceCheckUtils]: 44: Hoare triple {3352#(<= (+ main_~i~0 3) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {3352#(<= (+ main_~i~0 3) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:12,026 INFO L273 TraceCheckUtils]: 45: Hoare triple {3352#(<= (+ main_~i~0 3) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume !!(~i~0 <= #t~mem11);havoc #t~mem11;#t~pre12 := ~i~0 + 1;~i~0 := ~i~0 + 1;havoc #t~pre12; {3362#(<= (+ main_~i~0 2) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:12,027 INFO L273 TraceCheckUtils]: 46: Hoare triple {3362#(<= (+ main_~i~0 2) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} assume true; {3362#(<= (+ main_~i~0 2) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-14 19:11:12,027 INFO L273 TraceCheckUtils]: 47: Hoare triple {3362#(<= (+ main_~i~0 2) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} call #t~mem11 := read~int(~pa~0.base, ~pa~0.offset, 4); {3369#(<= (+ main_~i~0 2) |main_#t~mem11|)} is VALID [2018-11-14 19:11:12,028 INFO L273 TraceCheckUtils]: 48: Hoare triple {3369#(<= (+ main_~i~0 2) |main_#t~mem11|)} assume !(~i~0 <= #t~mem11);havoc #t~mem11; {3195#false} is VALID [2018-11-14 19:11:12,028 INFO L256 TraceCheckUtils]: 49: Hoare triple {3195#false} call #t~ret13 := check(~pd2~0.base, ~pd2~0.offset, ~i~0); {3195#false} is VALID [2018-11-14 19:11:12,029 INFO L273 TraceCheckUtils]: 50: Hoare triple {3195#false} ~s1.base, ~s1.offset := #in~s1.base, #in~s1.offset;~i := #in~i;call #t~mem6 := read~int(~s1.base, ~s1.offset + 8 + ~i * 4, 4);#res := (if #t~mem6 == ~i then 1 else 0);havoc #t~mem6; {3195#false} is VALID [2018-11-14 19:11:12,029 INFO L273 TraceCheckUtils]: 51: Hoare triple {3195#false} assume true; {3195#false} is VALID [2018-11-14 19:11:12,029 INFO L268 TraceCheckUtils]: 52: Hoare quadruple {3195#false} {3195#false} #60#return; {3195#false} is VALID [2018-11-14 19:11:12,029 INFO L273 TraceCheckUtils]: 53: Hoare triple {3195#false} assume -2147483648 <= #t~ret13 && #t~ret13 <= 2147483647; {3195#false} is VALID [2018-11-14 19:11:12,030 INFO L273 TraceCheckUtils]: 54: Hoare triple {3195#false} assume #t~ret13 == 0;havoc #t~ret13; {3195#false} is VALID [2018-11-14 19:11:12,030 INFO L273 TraceCheckUtils]: 55: Hoare triple {3195#false} assume !false; {3195#false} is VALID [2018-11-14 19:11:12,034 INFO L134 CoverageAnalysis]: Checked inductivity of 112 backedges. 3 proven. 108 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2018-11-14 19:11:12,055 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-14 19:11:12,055 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [20, 14] total 32 [2018-11-14 19:11:12,056 INFO L78 Accepts]: Start accepts. Automaton has 32 states. Word has length 56 [2018-11-14 19:11:12,056 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 19:11:12,057 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 32 states. [2018-11-14 19:11:12,163 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 103 edges. 103 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:11:12,163 INFO L459 AbstractCegarLoop]: Interpolant automaton has 32 states [2018-11-14 19:11:12,163 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 32 interpolants. [2018-11-14 19:11:12,164 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=184, Invalid=808, Unknown=0, NotChecked=0, Total=992 [2018-11-14 19:11:12,164 INFO L87 Difference]: Start difference. First operand 69 states and 73 transitions. Second operand 32 states. [2018-11-14 19:11:16,945 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:11:16,945 INFO L93 Difference]: Finished difference Result 118 states and 125 transitions. [2018-11-14 19:11:16,945 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 49 states. [2018-11-14 19:11:16,945 INFO L78 Accepts]: Start accepts. Automaton has 32 states. Word has length 56 [2018-11-14 19:11:16,945 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 19:11:16,946 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 32 states. [2018-11-14 19:11:16,949 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 49 states to 49 states and 119 transitions. [2018-11-14 19:11:16,949 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 32 states. [2018-11-14 19:11:16,952 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 49 states to 49 states and 119 transitions. [2018-11-14 19:11:16,952 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 49 states and 119 transitions. [2018-11-14 19:11:17,126 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 119 edges. 119 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 19:11:17,130 INFO L225 Difference]: With dead ends: 118 [2018-11-14 19:11:17,130 INFO L226 Difference]: Without dead ends: 110 [2018-11-14 19:11:17,133 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 123 GetRequests, 46 SyntacticMatches, 3 SemanticMatches, 74 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1132 ImplicationChecksByTransitivity, 3.1s TimeCoverageRelationStatistics Valid=1152, Invalid=4548, Unknown=0, NotChecked=0, Total=5700 [2018-11-14 19:11:17,134 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 110 states. [2018-11-14 19:11:17,638 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 110 to 67. [2018-11-14 19:11:17,639 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 19:11:17,639 INFO L82 GeneralOperation]: Start isEquivalent. First operand 110 states. Second operand 67 states. [2018-11-14 19:11:17,639 INFO L74 IsIncluded]: Start isIncluded. First operand 110 states. Second operand 67 states. [2018-11-14 19:11:17,639 INFO L87 Difference]: Start difference. First operand 110 states. Second operand 67 states. [2018-11-14 19:11:17,645 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:11:17,645 INFO L93 Difference]: Finished difference Result 110 states and 115 transitions. [2018-11-14 19:11:17,645 INFO L276 IsEmpty]: Start isEmpty. Operand 110 states and 115 transitions. [2018-11-14 19:11:17,646 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:11:17,646 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:11:17,646 INFO L74 IsIncluded]: Start isIncluded. First operand 67 states. Second operand 110 states. [2018-11-14 19:11:17,646 INFO L87 Difference]: Start difference. First operand 67 states. Second operand 110 states. [2018-11-14 19:11:17,650 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 19:11:17,650 INFO L93 Difference]: Finished difference Result 110 states and 115 transitions. [2018-11-14 19:11:17,650 INFO L276 IsEmpty]: Start isEmpty. Operand 110 states and 115 transitions. [2018-11-14 19:11:17,651 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 19:11:17,651 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 19:11:17,651 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 19:11:17,652 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 19:11:17,652 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 67 states. [2018-11-14 19:11:17,654 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 67 states to 67 states and 71 transitions. [2018-11-14 19:11:17,654 INFO L78 Accepts]: Start accepts. Automaton has 67 states and 71 transitions. Word has length 56 [2018-11-14 19:11:17,654 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 19:11:17,654 INFO L480 AbstractCegarLoop]: Abstraction has 67 states and 71 transitions. [2018-11-14 19:11:17,655 INFO L481 AbstractCegarLoop]: Interpolant automaton has 32 states. [2018-11-14 19:11:17,655 INFO L276 IsEmpty]: Start isEmpty. Operand 67 states and 71 transitions. [2018-11-14 19:11:17,656 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 66 [2018-11-14 19:11:17,656 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 19:11:17,656 INFO L375 BasicCegarLoop]: trace histogram [12, 12, 11, 2, 2, 2, 1, 1, 1, 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:11:17,656 INFO L423 AbstractCegarLoop]: === Iteration 10 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 19:11:17,656 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 19:11:17,657 INFO L82 PathProgramCache]: Analyzing trace with hash -1575780711, now seen corresponding path program 4 times [2018-11-14 19:11:17,657 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 19:11:17,657 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 19:11:17,658 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:11:17,658 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-14 19:11:17,658 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 19:11:17,689 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-14 19:11:17,736 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-14 19:11:17,776 INFO L442 BasicCegarLoop]: Counterexample might be feasible [2018-11-14 19:11:17,851 WARN L170 areAnnotationChecker]: initENTRY has no Hoare annotation [2018-11-14 19:11:17,851 WARN L170 areAnnotationChecker]: ULTIMATE.initENTRY has no Hoare annotation [2018-11-14 19:11:17,851 WARN L170 areAnnotationChecker]: ULTIMATE.startENTRY has no Hoare annotation [2018-11-14 19:11:17,852 WARN L170 areAnnotationChecker]: ULTIMATE.startENTRY has no Hoare annotation [2018-11-14 19:11:17,852 WARN L170 areAnnotationChecker]: get_dummyENTRY has no Hoare annotation [2018-11-14 19:11:17,852 WARN L170 areAnnotationChecker]: get_dummyENTRY has no Hoare annotation [2018-11-14 19:11:17,852 WARN L170 areAnnotationChecker]: mainENTRY has no Hoare annotation [2018-11-14 19:11:17,852 WARN L170 areAnnotationChecker]: mainENTRY has no Hoare annotation [2018-11-14 19:11:17,852 WARN L170 areAnnotationChecker]: checkENTRY has no Hoare annotation [2018-11-14 19:11:17,852 WARN L170 areAnnotationChecker]: initFINAL has no Hoare annotation [2018-11-14 19:11:17,852 WARN L170 areAnnotationChecker]: ULTIMATE.initFINAL has no Hoare annotation [2018-11-14 19:11:17,853 WARN L170 areAnnotationChecker]: L-1 has no Hoare annotation [2018-11-14 19:11:17,853 WARN L170 areAnnotationChecker]: L-1 has no Hoare annotation [2018-11-14 19:11:17,853 WARN L170 areAnnotationChecker]: L23-1 has no Hoare annotation [2018-11-14 19:11:17,853 WARN L170 areAnnotationChecker]: L33 has no Hoare annotation [2018-11-14 19:11:17,853 WARN L170 areAnnotationChecker]: L33 has no Hoare annotation [2018-11-14 19:11:17,853 WARN L170 areAnnotationChecker]: checkFINAL has no Hoare annotation [2018-11-14 19:11:17,853 WARN L170 areAnnotationChecker]: initEXIT has no Hoare annotation [2018-11-14 19:11:17,854 WARN L170 areAnnotationChecker]: ULTIMATE.initEXIT has no Hoare annotation [2018-11-14 19:11:17,854 WARN L170 areAnnotationChecker]: ULTIMATE.startFINAL has no Hoare annotation [2018-11-14 19:11:17,854 WARN L170 areAnnotationChecker]: get_dummyFINAL has no Hoare annotation [2018-11-14 19:11:17,854 WARN L170 areAnnotationChecker]: L34 has no Hoare annotation [2018-11-14 19:11:17,854 WARN L170 areAnnotationChecker]: checkEXIT has no Hoare annotation [2018-11-14 19:11:17,854 WARN L170 areAnnotationChecker]: get_dummyEXIT has no Hoare annotation [2018-11-14 19:11:17,854 WARN L170 areAnnotationChecker]: get_dummyEXIT has no Hoare annotation [2018-11-14 19:11:17,854 WARN L170 areAnnotationChecker]: L34-1 has no Hoare annotation [2018-11-14 19:11:17,855 WARN L170 areAnnotationChecker]: L34-1 has no Hoare annotation [2018-11-14 19:11:17,855 WARN L170 areAnnotationChecker]: L43 has no Hoare annotation [2018-11-14 19:11:17,855 WARN L170 areAnnotationChecker]: L34-2 has no Hoare annotation [2018-11-14 19:11:17,855 WARN L170 areAnnotationChecker]: L43-1 has no Hoare annotation [2018-11-14 19:11:17,855 WARN L170 areAnnotationChecker]: L43-1 has no Hoare annotation [2018-11-14 19:11:17,855 WARN L170 areAnnotationChecker]: L36 has no Hoare annotation [2018-11-14 19:11:17,855 WARN L170 areAnnotationChecker]: L36 has no Hoare annotation [2018-11-14 19:11:17,855 WARN L170 areAnnotationChecker]: L44 has no Hoare annotation [2018-11-14 19:11:17,856 WARN L170 areAnnotationChecker]: L44 has no Hoare annotation [2018-11-14 19:11:17,856 WARN L170 areAnnotationChecker]: L36-2 has no Hoare annotation [2018-11-14 19:11:17,856 WARN L170 areAnnotationChecker]: L40-4 has no Hoare annotation [2018-11-14 19:11:17,856 WARN L170 areAnnotationChecker]: L40-4 has no Hoare annotation [2018-11-14 19:11:17,856 WARN L170 areAnnotationChecker]: mainFINAL has no Hoare annotation [2018-11-14 19:11:17,856 WARN L170 areAnnotationChecker]: L40-1 has no Hoare annotation [2018-11-14 19:11:17,856 WARN L170 areAnnotationChecker]: L40-5 has no Hoare annotation [2018-11-14 19:11:17,856 WARN L170 areAnnotationChecker]: L40-5 has no Hoare annotation [2018-11-14 19:11:17,857 WARN L170 areAnnotationChecker]: mainEXIT has no Hoare annotation [2018-11-14 19:11:17,857 WARN L170 areAnnotationChecker]: L40-2 has no Hoare annotation [2018-11-14 19:11:17,857 WARN L170 areAnnotationChecker]: L40-2 has no Hoare annotation [2018-11-14 19:11:17,857 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:17,859 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction CFG 14.11 07:11:17 BoogieIcfgContainer [2018-11-14 19:11:17,860 INFO L132 PluginConnector]: ------------------------ END TraceAbstraction---------------------------- [2018-11-14 19:11:17,861 INFO L168 Benchmark]: Toolchain (without parser) took 37414.16 ms. Allocated memory was 1.5 GB in the beginning and 2.7 GB in the end (delta: 1.1 GB). Free memory was 1.4 GB in the beginning and 1.6 GB in the end (delta: -181.3 MB). Peak memory consumption was 954.8 MB. Max. memory is 7.1 GB. [2018-11-14 19:11:17,862 INFO L168 Benchmark]: CDTParser took 0.27 ms. Allocated memory is still 1.5 GB. Free memory is still 1.5 GB. There was no memory consumed. Max. memory is 7.1 GB. [2018-11-14 19:11:17,863 INFO L168 Benchmark]: CACSL2BoogieTranslator took 431.81 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:17,863 INFO L168 Benchmark]: Boogie Preprocessor took 72.20 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:17,864 INFO L168 Benchmark]: RCFGBuilder took 957.25 ms. Allocated memory was 1.5 GB in the beginning and 2.3 GB in the end (delta: 757.6 MB). Free memory was 1.4 GB in the beginning and 2.2 GB in the end (delta: -785.8 MB). Peak memory consumption was 15.0 MB. Max. memory is 7.1 GB. [2018-11-14 19:11:17,864 INFO L168 Benchmark]: TraceAbstraction took 35947.23 ms. Allocated memory was 2.3 GB in the beginning and 2.7 GB in the end (delta: 378.5 MB). Free memory was 2.2 GB in the beginning and 1.6 GB in the end (delta: 593.9 MB). Peak memory consumption was 972.5 MB. Max. memory is 7.1 GB. [2018-11-14 19:11:17,867 INFO L336 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - GenericResult: Assertions are enabled Assertions are enabled - StatisticsResult: Toolchain Benchmarks Benchmark results are: * CDTParser took 0.27 ms. Allocated memory is still 1.5 GB. Free memory is still 1.5 GB. There was no memory consumed. Max. memory is 7.1 GB. * CACSL2BoogieTranslator took 431.81 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 72.20 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 957.25 ms. Allocated memory was 1.5 GB in the beginning and 2.3 GB in the end (delta: 757.6 MB). Free memory was 1.4 GB in the beginning and 2.2 GB in the end (delta: -785.8 MB). Peak memory consumption was 15.0 MB. Max. memory is 7.1 GB. * TraceAbstraction took 35947.23 ms. Allocated memory was 2.3 GB in the beginning and 2.7 GB in the end (delta: 378.5 MB). Free memory was 2.2 GB in the beginning and 1.6 GB in the end (delta: 593.9 MB). Peak memory consumption was 972.5 MB. Max. memory is 7.1 GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - CounterExampleResult [Line: 50]: a call of __VERIFIER_error() is reachable a call of __VERIFIER_error() is reachable We found a FailurePath: [L10] FCALL struct dummy d1, d2; VAL [\old(d1)=74, \old(d1)=79, \old(d2)=75, \old(d2)=77, d1={1:0}, d2={78:0}] [L33] CALL init() VAL [d1={1:0}, d2={78:0}] [L14] FCALL d1.a = __VERIFIER_nondet_int() [L15] FCALL d1.b = __VERIFIER_nondet_int() [L17] FCALL d2.a = __VERIFIER_nondet_int() [L18] RET, FCALL d2.b = __VERIFIER_nondet_int() [L33] init() VAL [d1={1:0}, d2={78:0}] [L34] CALL, EXPR get_dummy() VAL [d1={1:0}, d2={78:0}] [L23] COND TRUE, EXPR __VERIFIER_nondet_bool() ? &d1 : &d2 VAL [__VERIFIER_nondet_bool()=1, __VERIFIER_nondet_bool() ? &d1 : &d2={1:0}, d1={1:0}, d2={78:0}] [L23] RET return (__VERIFIER_nondet_bool() ? &d1 : &d2); [L34] EXPR get_dummy() VAL [d1={1:0}, d2={78:0}, get_dummy()={1:0}] [L34] struct dummy *pd1 = get_dummy(), *pd2 = get_dummy(); [L34] CALL, EXPR get_dummy() VAL [d1={1:0}, d2={78:0}] [L23] COND TRUE, EXPR __VERIFIER_nondet_bool() ? &d1 : &d2 VAL [__VERIFIER_nondet_bool()=1, __VERIFIER_nondet_bool() ? &d1 : &d2={1:0}, d1={1:0}, d2={78:0}] [L23] RET return (__VERIFIER_nondet_bool() ? &d1 : &d2); [L34] EXPR get_dummy() VAL [d1={1:0}, d2={78:0}, get_dummy()={1:0}, pd1={1:0}] [L34] struct dummy *pd1 = get_dummy(), *pd2 = get_dummy(); [L35] int i = __VERIFIER_nondet_int(); [L36] COND TRUE pd1 != 0 && pd1 == pd2 && i >= 0 && i < 10 [L37] FCALL pd2->array[i] = i [L38] int *pa = &pd1->array[i]; [L39] EXPR, FCALL pd2->array[i] [L39] i = pd2->array[i] - 10 [L40] EXPR, FCALL \read(*pa) VAL [\read(*pa)=6, d1={1:0}, d2={78:0}, i=-4, pa={1:32}, pd1={1:0}, pd2={1:0}] [L40] COND TRUE i <= *pa [L41] ++i VAL [d1={1:0}, d2={78:0}, i=-3, pa={1:32}, pd1={1:0}, pd2={1:0}] [L40] EXPR, FCALL \read(*pa) VAL [\read(*pa)=6, d1={1:0}, d2={78:0}, i=-3, pa={1:32}, pd1={1:0}, pd2={1:0}] [L40] COND TRUE i <= *pa [L41] ++i VAL [d1={1:0}, d2={78:0}, i=-2, pa={1:32}, pd1={1:0}, pd2={1:0}] [L40] EXPR, FCALL \read(*pa) VAL [\read(*pa)=6, d1={1:0}, d2={78:0}, i=-2, pa={1:32}, pd1={1:0}, pd2={1:0}] [L40] COND TRUE i <= *pa [L41] ++i VAL [d1={1:0}, d2={78:0}, i=-1, pa={1:32}, pd1={1:0}, pd2={1:0}] [L40] EXPR, FCALL \read(*pa) VAL [\read(*pa)=6, d1={1:0}, d2={78:0}, i=-1, pa={1:32}, pd1={1:0}, pd2={1:0}] [L40] COND TRUE i <= *pa [L41] ++i VAL [d1={1:0}, d2={78:0}, i=0, pa={1:32}, pd1={1:0}, pd2={1:0}] [L40] EXPR, FCALL \read(*pa) VAL [\read(*pa)=6, d1={1:0}, d2={78:0}, i=0, pa={1:32}, pd1={1:0}, pd2={1:0}] [L40] COND TRUE i <= *pa [L41] ++i VAL [d1={1:0}, d2={78:0}, i=1, pa={1:32}, pd1={1:0}, pd2={1:0}] [L40] EXPR, FCALL \read(*pa) VAL [\read(*pa)=6, d1={1:0}, d2={78:0}, i=1, pa={1:32}, pd1={1:0}, pd2={1:0}] [L40] COND TRUE i <= *pa [L41] ++i VAL [d1={1:0}, d2={78:0}, i=2, pa={1:32}, pd1={1:0}, pd2={1:0}] [L40] EXPR, FCALL \read(*pa) VAL [\read(*pa)=6, d1={1:0}, d2={78:0}, i=2, pa={1:32}, pd1={1:0}, pd2={1:0}] [L40] COND TRUE i <= *pa [L41] ++i VAL [d1={1:0}, d2={78:0}, i=3, pa={1:32}, pd1={1:0}, pd2={1:0}] [L40] EXPR, FCALL \read(*pa) VAL [\read(*pa)=6, d1={1:0}, d2={78:0}, i=3, pa={1:32}, pd1={1:0}, pd2={1:0}] [L40] COND TRUE i <= *pa [L41] ++i VAL [d1={1:0}, d2={78:0}, i=4, pa={1:32}, pd1={1:0}, pd2={1:0}] [L40] EXPR, FCALL \read(*pa) VAL [\read(*pa)=6, d1={1:0}, d2={78:0}, i=4, pa={1:32}, pd1={1:0}, pd2={1:0}] [L40] COND TRUE i <= *pa [L41] ++i VAL [d1={1:0}, d2={78:0}, i=5, pa={1:32}, pd1={1:0}, pd2={1:0}] [L40] EXPR, FCALL \read(*pa) VAL [\read(*pa)=6, d1={1:0}, d2={78:0}, i=5, pa={1:32}, pd1={1:0}, pd2={1:0}] [L40] COND TRUE i <= *pa [L41] ++i VAL [d1={1:0}, d2={78:0}, i=6, pa={1:32}, pd1={1:0}, pd2={1:0}] [L40] EXPR, FCALL \read(*pa) VAL [\read(*pa)=6, d1={1:0}, d2={78:0}, i=6, pa={1:32}, pd1={1:0}, pd2={1:0}] [L40] COND TRUE i <= *pa [L41] ++i VAL [d1={1:0}, d2={78:0}, i=7, pa={1:32}, pd1={1:0}, pd2={1:0}] [L40] EXPR, FCALL \read(*pa) VAL [\read(*pa)=6, d1={1:0}, d2={78:0}, i=7, pa={1:32}, pd1={1:0}, pd2={1:0}] [L40] COND FALSE !(i <= *pa) [L43] CALL, EXPR check(pd2, i) VAL [\old(i)=7, d1={1:0}, d2={78:0}, s1={1:0}] [L28] EXPR, FCALL s1->array[i] [L28] RET return s1->array[i] == i; [L43] EXPR check(pd2, i) VAL [check(pd2, i)=0, d1={1:0}, d2={78:0}, i=7, pa={1:32}, pd1={1:0}, pd2={1:0}] [L43] COND TRUE !check(pd2, i) [L50] __VERIFIER_error() VAL [d1={1:0}, d2={78:0}, i=7, pa={1:32}, pd1={1:0}, pd2={1:0}] - StatisticsResult: Ultimate Automizer benchmark data CFG has 6 procedures, 34 locations, 1 error locations. UNSAFE Result, 35.8s OverallTime, 10 OverallIterations, 12 TraceHistogramMax, 22.0s AutomataDifference, 0.0s DeadEndRemovalTime, 0.0s HoareAnnotationTime, HoareTripleCheckerStatistics: 288 SDtfs, 661 SDslu, 2499 SDs, 0 SdLazy, 1921 SolverSat, 211 SolverUnsat, 0 SolverUnknown, 0 SolverNotchecked, 3.8s Time, PredicateUnifierStatistics: 0 DeclaredPredicates, 537 GetRequests, 215 SyntacticMatches, 25 SemanticMatches, 297 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 3215 ImplicationChecksByTransitivity, 11.6s Time, 0.0s BasicInterpolantAutomatonTime, BiggestAbstraction: size=69occurred in iteration=8, 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: 1.8s AutomataMinimizationTime, 9 MinimizatonAttempts, 173 StatesRemovedByMinimization, 8 NontrivialMinimizations, HoareAnnotationStatistics: No data available, RefinementEngineStatistics: TraceCheckStatistics: 0.0s SsaConstructionTime, 0.4s SatisfiabilityAnalysisTime, 9.6s InterpolantComputationTime, 663 NumberOfCodeBlocks, 663 NumberOfCodeBlocksAsserted, 25 NumberOfCheckSat, 583 ConstructedInterpolants, 10 QuantifiedInterpolants, 140643 SizeOfPredicates, 48 NumberOfNonLiveVariables, 1067 ConjunctsInSsa, 170 ConjunctsInUnsatCore, 15 InterpolantComputations, 3 PerfectInterpolantSequences, 47/492 InterpolantCoveringCapability, InvariantSynthesisStatistics: No data available, InterpolantConsolidationStatistics: No data available, ReuseStatistics: No data available RESULT: Ultimate proved your program to be incorrect! Received shutdown request...