/usr/bin/java -ea -Xmx8000000000 -Xss4m -jar ./plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -data @noDefault -ultimatedata ./data -tc ../../../trunk/examples/toolchains/AutomizerC.xml -s ../../../trunk/examples/settings/default/automizer/svcomp-Reach-32bit-Automizer_Default.epf -i ../../../trunk/examples/svcomp/ldv-regression/rule60_list2.c_1.i -------------------------------------------------------------------------------- This is Ultimate 0.1.25-8fc6572 [2020-07-10 15:05:52,940 INFO L177 SettingsManager]: Resetting all preferences to default values... [2020-07-10 15:05:52,944 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2020-07-10 15:05:52,964 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2020-07-10 15:05:52,965 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2020-07-10 15:05:52,967 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2020-07-10 15:05:52,969 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2020-07-10 15:05:52,978 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2020-07-10 15:05:52,982 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2020-07-10 15:05:52,985 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2020-07-10 15:05:52,987 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2020-07-10 15:05:52,989 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2020-07-10 15:05:52,989 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2020-07-10 15:05:52,991 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2020-07-10 15:05:52,993 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2020-07-10 15:05:52,994 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2020-07-10 15:05:52,995 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2020-07-10 15:05:52,997 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2020-07-10 15:05:52,999 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2020-07-10 15:05:53,004 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2020-07-10 15:05:53,009 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2020-07-10 15:05:53,011 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2020-07-10 15:05:53,012 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2020-07-10 15:05:53,013 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2020-07-10 15:05:53,015 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2020-07-10 15:05:53,015 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2020-07-10 15:05:53,015 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2020-07-10 15:05:53,020 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2020-07-10 15:05:53,020 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2020-07-10 15:05:53,022 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2020-07-10 15:05:53,023 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2020-07-10 15:05:53,023 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2020-07-10 15:05:53,025 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2020-07-10 15:05:53,025 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2020-07-10 15:05:53,026 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2020-07-10 15:05:53,027 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2020-07-10 15:05:53,029 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2020-07-10 15:05:53,030 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2020-07-10 15:05:53,030 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2020-07-10 15:05:53,030 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2020-07-10 15:05:53,032 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2020-07-10 15:05:53,033 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/default/automizer/svcomp-Reach-32bit-Automizer_Default.epf [2020-07-10 15:05:53,067 INFO L113 SettingsManager]: Loading preferences was successful [2020-07-10 15:05:53,068 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2020-07-10 15:05:53,072 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2020-07-10 15:05:53,073 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2020-07-10 15:05:53,073 INFO L138 SettingsManager]: * Use SBE=true [2020-07-10 15:05:53,073 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2020-07-10 15:05:53,073 INFO L138 SettingsManager]: * sizeof long=4 [2020-07-10 15:05:53,073 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2020-07-10 15:05:53,074 INFO L138 SettingsManager]: * sizeof POINTER=4 [2020-07-10 15:05:53,074 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2020-07-10 15:05:53,074 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2020-07-10 15:05:53,076 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2020-07-10 15:05:53,077 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2020-07-10 15:05:53,077 INFO L138 SettingsManager]: * sizeof long double=12 [2020-07-10 15:05:53,077 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2020-07-10 15:05:53,077 INFO L138 SettingsManager]: * Use constant arrays=true [2020-07-10 15:05:53,077 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2020-07-10 15:05:53,078 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2020-07-10 15:05:53,078 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2020-07-10 15:05:53,078 INFO L138 SettingsManager]: * To the following directory=./dump/ [2020-07-10 15:05:53,078 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2020-07-10 15:05:53,078 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2020-07-10 15:05:53,079 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2020-07-10 15:05:53,079 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2020-07-10 15:05:53,079 INFO L138 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2020-07-10 15:05:53,081 INFO L138 SettingsManager]: * Trace refinement strategy=CAMEL [2020-07-10 15:05:53,081 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2020-07-10 15:05:53,081 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2020-07-10 15:05:53,081 INFO L138 SettingsManager]: * Trace refinement exception blacklist=NONE [2020-07-10 15:05:53,082 INFO L138 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2020-07-10 15:05:53,380 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2020-07-10 15:05:53,393 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2020-07-10 15:05:53,396 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2020-07-10 15:05:53,398 INFO L271 PluginConnector]: Initializing CDTParser... [2020-07-10 15:05:53,398 INFO L275 PluginConnector]: CDTParser initialized [2020-07-10 15:05:53,399 INFO L429 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/svcomp/ldv-regression/rule60_list2.c_1.i [2020-07-10 15:05:53,476 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/887c9f2b2/8664e1fd0f6b44e1a51acc3ded3bca6c/FLAGc1ac23758 [2020-07-10 15:05:54,056 INFO L306 CDTParser]: Found 1 translation units. [2020-07-10 15:05:54,058 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/ldv-regression/rule60_list2.c_1.i [2020-07-10 15:05:54,076 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/887c9f2b2/8664e1fd0f6b44e1a51acc3ded3bca6c/FLAGc1ac23758 [2020-07-10 15:05:54,340 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/887c9f2b2/8664e1fd0f6b44e1a51acc3ded3bca6c [2020-07-10 15:05:54,348 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2020-07-10 15:05:54,350 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2020-07-10 15:05:54,351 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2020-07-10 15:05:54,351 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2020-07-10 15:05:54,355 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2020-07-10 15:05:54,356 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 10.07 03:05:54" (1/1) ... [2020-07-10 15:05:54,359 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@18b68349 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:05:54, skipping insertion in model container [2020-07-10 15:05:54,359 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 10.07 03:05:54" (1/1) ... [2020-07-10 15:05:54,367 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2020-07-10 15:05:54,407 INFO L178 MainTranslator]: Built tables and reachable declarations [2020-07-10 15:05:54,865 INFO L206 PostProcessor]: Analyzing one entry point: main [2020-07-10 15:05:54,872 INFO L203 MainTranslator]: Completed pre-run [2020-07-10 15:05:54,916 INFO L206 PostProcessor]: Analyzing one entry point: main [2020-07-10 15:05:55,011 INFO L208 MainTranslator]: Completed translation [2020-07-10 15:05:55,012 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:05:55 WrapperNode [2020-07-10 15:05:55,012 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2020-07-10 15:05:55,013 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2020-07-10 15:05:55,013 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2020-07-10 15:05:55,013 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2020-07-10 15:05:55,027 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:05:55" (1/1) ... [2020-07-10 15:05:55,027 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:05:55" (1/1) ... [2020-07-10 15:05:55,047 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:05:55" (1/1) ... [2020-07-10 15:05:55,048 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:05:55" (1/1) ... [2020-07-10 15:05:55,096 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:05:55" (1/1) ... [2020-07-10 15:05:55,100 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:05:55" (1/1) ... [2020-07-10 15:05:55,108 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:05:55" (1/1) ... [2020-07-10 15:05:55,118 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2020-07-10 15:05:55,119 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2020-07-10 15:05:55,119 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2020-07-10 15:05:55,119 INFO L275 PluginConnector]: RCFGBuilder initialized [2020-07-10 15:05:55,120 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:05:55" (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 [2020-07-10 15:05:55,183 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2020-07-10 15:05:55,183 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2020-07-10 15:05:55,183 INFO L138 BoogieDeclarations]: Found implementation of procedure __blast_assert [2020-07-10 15:05:55,183 INFO L138 BoogieDeclarations]: Found implementation of procedure __getMemory [2020-07-10 15:05:55,184 INFO L138 BoogieDeclarations]: Found implementation of procedure my_malloc [2020-07-10 15:05:55,184 INFO L138 BoogieDeclarations]: Found implementation of procedure list_add [2020-07-10 15:05:55,184 INFO L138 BoogieDeclarations]: Found implementation of procedure list_del [2020-07-10 15:05:55,184 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2020-07-10 15:05:55,184 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_error [2020-07-10 15:05:55,185 INFO L130 BoogieDeclarations]: Found specification of procedure __blast_assert [2020-07-10 15:05:55,185 INFO L130 BoogieDeclarations]: Found specification of procedure __underflow [2020-07-10 15:05:55,185 INFO L130 BoogieDeclarations]: Found specification of procedure __uflow [2020-07-10 15:05:55,185 INFO L130 BoogieDeclarations]: Found specification of procedure __overflow [2020-07-10 15:05:55,185 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_getc [2020-07-10 15:05:55,186 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_putc [2020-07-10 15:05:55,186 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_feof [2020-07-10 15:05:55,186 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_ferror [2020-07-10 15:05:55,186 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_peekc_locked [2020-07-10 15:05:55,186 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_flockfile [2020-07-10 15:05:55,187 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_funlockfile [2020-07-10 15:05:55,187 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_ftrylockfile [2020-07-10 15:05:55,187 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_vfscanf [2020-07-10 15:05:55,187 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_vfprintf [2020-07-10 15:05:55,188 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_padn [2020-07-10 15:05:55,188 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_sgetn [2020-07-10 15:05:55,188 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_seekoff [2020-07-10 15:05:55,188 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_seekpos [2020-07-10 15:05:55,188 INFO L130 BoogieDeclarations]: Found specification of procedure _IO_free_backup_area [2020-07-10 15:05:55,189 INFO L130 BoogieDeclarations]: Found specification of procedure remove [2020-07-10 15:05:55,189 INFO L130 BoogieDeclarations]: Found specification of procedure rename [2020-07-10 15:05:55,189 INFO L130 BoogieDeclarations]: Found specification of procedure renameat [2020-07-10 15:05:55,189 INFO L130 BoogieDeclarations]: Found specification of procedure tmpfile [2020-07-10 15:05:55,189 INFO L130 BoogieDeclarations]: Found specification of procedure tmpnam [2020-07-10 15:05:55,190 INFO L130 BoogieDeclarations]: Found specification of procedure tmpnam_r [2020-07-10 15:05:55,190 INFO L130 BoogieDeclarations]: Found specification of procedure tempnam [2020-07-10 15:05:55,190 INFO L130 BoogieDeclarations]: Found specification of procedure fclose [2020-07-10 15:05:55,190 INFO L130 BoogieDeclarations]: Found specification of procedure fflush [2020-07-10 15:05:55,190 INFO L130 BoogieDeclarations]: Found specification of procedure fflush_unlocked [2020-07-10 15:05:55,191 INFO L130 BoogieDeclarations]: Found specification of procedure fopen [2020-07-10 15:05:55,191 INFO L130 BoogieDeclarations]: Found specification of procedure freopen [2020-07-10 15:05:55,191 INFO L130 BoogieDeclarations]: Found specification of procedure fdopen [2020-07-10 15:05:55,191 INFO L130 BoogieDeclarations]: Found specification of procedure fmemopen [2020-07-10 15:05:55,191 INFO L130 BoogieDeclarations]: Found specification of procedure open_memstream [2020-07-10 15:05:55,192 INFO L130 BoogieDeclarations]: Found specification of procedure setbuf [2020-07-10 15:05:55,192 INFO L130 BoogieDeclarations]: Found specification of procedure setvbuf [2020-07-10 15:05:55,192 INFO L130 BoogieDeclarations]: Found specification of procedure setbuffer [2020-07-10 15:05:55,192 INFO L130 BoogieDeclarations]: Found specification of procedure setlinebuf [2020-07-10 15:05:55,192 INFO L130 BoogieDeclarations]: Found specification of procedure fprintf [2020-07-10 15:05:55,192 INFO L130 BoogieDeclarations]: Found specification of procedure printf [2020-07-10 15:05:55,193 INFO L130 BoogieDeclarations]: Found specification of procedure sprintf [2020-07-10 15:05:55,193 INFO L130 BoogieDeclarations]: Found specification of procedure vfprintf [2020-07-10 15:05:55,193 INFO L130 BoogieDeclarations]: Found specification of procedure vprintf [2020-07-10 15:05:55,193 INFO L130 BoogieDeclarations]: Found specification of procedure vsprintf [2020-07-10 15:05:55,193 INFO L130 BoogieDeclarations]: Found specification of procedure snprintf [2020-07-10 15:05:55,193 INFO L130 BoogieDeclarations]: Found specification of procedure vsnprintf [2020-07-10 15:05:55,193 INFO L130 BoogieDeclarations]: Found specification of procedure vdprintf [2020-07-10 15:05:55,194 INFO L130 BoogieDeclarations]: Found specification of procedure dprintf [2020-07-10 15:05:55,194 INFO L130 BoogieDeclarations]: Found specification of procedure fscanf [2020-07-10 15:05:55,194 INFO L130 BoogieDeclarations]: Found specification of procedure scanf [2020-07-10 15:05:55,194 INFO L130 BoogieDeclarations]: Found specification of procedure sscanf [2020-07-10 15:05:55,194 INFO L130 BoogieDeclarations]: Found specification of procedure vfscanf [2020-07-10 15:05:55,194 INFO L130 BoogieDeclarations]: Found specification of procedure vscanf [2020-07-10 15:05:55,195 INFO L130 BoogieDeclarations]: Found specification of procedure vsscanf [2020-07-10 15:05:55,195 INFO L130 BoogieDeclarations]: Found specification of procedure fgetc [2020-07-10 15:05:55,195 INFO L130 BoogieDeclarations]: Found specification of procedure getc [2020-07-10 15:05:55,195 INFO L130 BoogieDeclarations]: Found specification of procedure getchar [2020-07-10 15:05:55,195 INFO L130 BoogieDeclarations]: Found specification of procedure getc_unlocked [2020-07-10 15:05:55,195 INFO L130 BoogieDeclarations]: Found specification of procedure getchar_unlocked [2020-07-10 15:05:55,196 INFO L130 BoogieDeclarations]: Found specification of procedure fgetc_unlocked [2020-07-10 15:05:55,196 INFO L130 BoogieDeclarations]: Found specification of procedure fputc [2020-07-10 15:05:55,196 INFO L130 BoogieDeclarations]: Found specification of procedure putc [2020-07-10 15:05:55,196 INFO L130 BoogieDeclarations]: Found specification of procedure putchar [2020-07-10 15:05:55,196 INFO L130 BoogieDeclarations]: Found specification of procedure fputc_unlocked [2020-07-10 15:05:55,196 INFO L130 BoogieDeclarations]: Found specification of procedure putc_unlocked [2020-07-10 15:05:55,196 INFO L130 BoogieDeclarations]: Found specification of procedure putchar_unlocked [2020-07-10 15:05:55,197 INFO L130 BoogieDeclarations]: Found specification of procedure getw [2020-07-10 15:05:55,197 INFO L130 BoogieDeclarations]: Found specification of procedure putw [2020-07-10 15:05:55,197 INFO L130 BoogieDeclarations]: Found specification of procedure fgets [2020-07-10 15:05:55,197 INFO L130 BoogieDeclarations]: Found specification of procedure gets [2020-07-10 15:05:55,197 INFO L130 BoogieDeclarations]: Found specification of procedure __getdelim [2020-07-10 15:05:55,197 INFO L130 BoogieDeclarations]: Found specification of procedure getdelim [2020-07-10 15:05:55,198 INFO L130 BoogieDeclarations]: Found specification of procedure getline [2020-07-10 15:05:55,198 INFO L130 BoogieDeclarations]: Found specification of procedure fputs [2020-07-10 15:05:55,198 INFO L130 BoogieDeclarations]: Found specification of procedure puts [2020-07-10 15:05:55,198 INFO L130 BoogieDeclarations]: Found specification of procedure ungetc [2020-07-10 15:05:55,198 INFO L130 BoogieDeclarations]: Found specification of procedure fread [2020-07-10 15:05:55,198 INFO L130 BoogieDeclarations]: Found specification of procedure fwrite [2020-07-10 15:05:55,198 INFO L130 BoogieDeclarations]: Found specification of procedure fread_unlocked [2020-07-10 15:05:55,199 INFO L130 BoogieDeclarations]: Found specification of procedure fwrite_unlocked [2020-07-10 15:05:55,199 INFO L130 BoogieDeclarations]: Found specification of procedure fseek [2020-07-10 15:05:55,199 INFO L130 BoogieDeclarations]: Found specification of procedure ftell [2020-07-10 15:05:55,199 INFO L130 BoogieDeclarations]: Found specification of procedure rewind [2020-07-10 15:05:55,199 INFO L130 BoogieDeclarations]: Found specification of procedure fseeko [2020-07-10 15:05:55,199 INFO L130 BoogieDeclarations]: Found specification of procedure ftello [2020-07-10 15:05:55,200 INFO L130 BoogieDeclarations]: Found specification of procedure fgetpos [2020-07-10 15:05:55,200 INFO L130 BoogieDeclarations]: Found specification of procedure fsetpos [2020-07-10 15:05:55,200 INFO L130 BoogieDeclarations]: Found specification of procedure clearerr [2020-07-10 15:05:55,200 INFO L130 BoogieDeclarations]: Found specification of procedure feof [2020-07-10 15:05:55,200 INFO L130 BoogieDeclarations]: Found specification of procedure ferror [2020-07-10 15:05:55,200 INFO L130 BoogieDeclarations]: Found specification of procedure clearerr_unlocked [2020-07-10 15:05:55,201 INFO L130 BoogieDeclarations]: Found specification of procedure feof_unlocked [2020-07-10 15:05:55,201 INFO L130 BoogieDeclarations]: Found specification of procedure ferror_unlocked [2020-07-10 15:05:55,201 INFO L130 BoogieDeclarations]: Found specification of procedure perror [2020-07-10 15:05:55,201 INFO L130 BoogieDeclarations]: Found specification of procedure fileno [2020-07-10 15:05:55,201 INFO L130 BoogieDeclarations]: Found specification of procedure fileno_unlocked [2020-07-10 15:05:55,201 INFO L130 BoogieDeclarations]: Found specification of procedure popen [2020-07-10 15:05:55,201 INFO L130 BoogieDeclarations]: Found specification of procedure pclose [2020-07-10 15:05:55,202 INFO L130 BoogieDeclarations]: Found specification of procedure ctermid [2020-07-10 15:05:55,202 INFO L130 BoogieDeclarations]: Found specification of procedure flockfile [2020-07-10 15:05:55,202 INFO L130 BoogieDeclarations]: Found specification of procedure ftrylockfile [2020-07-10 15:05:55,202 INFO L130 BoogieDeclarations]: Found specification of procedure funlockfile [2020-07-10 15:05:55,202 INFO L130 BoogieDeclarations]: Found specification of procedure malloc [2020-07-10 15:05:55,202 INFO L130 BoogieDeclarations]: Found specification of procedure calloc [2020-07-10 15:05:55,202 INFO L130 BoogieDeclarations]: Found specification of procedure realloc [2020-07-10 15:05:55,203 INFO L130 BoogieDeclarations]: Found specification of procedure free [2020-07-10 15:05:55,203 INFO L130 BoogieDeclarations]: Found specification of procedure cfree [2020-07-10 15:05:55,203 INFO L130 BoogieDeclarations]: Found specification of procedure memalign [2020-07-10 15:05:55,203 INFO L130 BoogieDeclarations]: Found specification of procedure valloc [2020-07-10 15:05:55,203 INFO L130 BoogieDeclarations]: Found specification of procedure pvalloc [2020-07-10 15:05:55,203 INFO L130 BoogieDeclarations]: Found specification of procedure __default_morecore [2020-07-10 15:05:55,204 INFO L130 BoogieDeclarations]: Found specification of procedure mallinfo [2020-07-10 15:05:55,204 INFO L130 BoogieDeclarations]: Found specification of procedure mallopt [2020-07-10 15:05:55,204 INFO L130 BoogieDeclarations]: Found specification of procedure malloc_trim [2020-07-10 15:05:55,204 INFO L130 BoogieDeclarations]: Found specification of procedure malloc_usable_size [2020-07-10 15:05:55,204 INFO L130 BoogieDeclarations]: Found specification of procedure malloc_stats [2020-07-10 15:05:55,204 INFO L130 BoogieDeclarations]: Found specification of procedure malloc_info [2020-07-10 15:05:55,204 INFO L130 BoogieDeclarations]: Found specification of procedure malloc_get_state [2020-07-10 15:05:55,205 INFO L130 BoogieDeclarations]: Found specification of procedure malloc_set_state [2020-07-10 15:05:55,205 INFO L130 BoogieDeclarations]: Found specification of procedure __malloc_check_init [2020-07-10 15:05:55,205 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_nondet_int [2020-07-10 15:05:55,205 INFO L130 BoogieDeclarations]: Found specification of procedure __getMemory [2020-07-10 15:05:55,205 INFO L130 BoogieDeclarations]: Found specification of procedure my_malloc [2020-07-10 15:05:55,205 INFO L130 BoogieDeclarations]: Found specification of procedure list_add [2020-07-10 15:05:55,206 INFO L130 BoogieDeclarations]: Found specification of procedure list_del [2020-07-10 15:05:55,206 INFO L130 BoogieDeclarations]: Found specification of procedure main [2020-07-10 15:05:55,206 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2020-07-10 15:05:55,206 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnStack [2020-07-10 15:05:55,206 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~$Pointer$ [2020-07-10 15:05:55,206 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2020-07-10 15:05:55,206 INFO L130 BoogieDeclarations]: Found specification of procedure write~$Pointer$ [2020-07-10 15:05:55,207 INFO L130 BoogieDeclarations]: Found specification of procedure read~$Pointer$ [2020-07-10 15:05:55,207 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2020-07-10 15:05:55,795 INFO L290 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2020-07-10 15:05:55,796 INFO L295 CfgBuilder]: Removed 0 assume(true) statements. [2020-07-10 15:05:55,800 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 10.07 03:05:55 BoogieIcfgContainer [2020-07-10 15:05:55,800 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2020-07-10 15:05:55,801 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2020-07-10 15:05:55,802 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2020-07-10 15:05:55,805 INFO L275 PluginConnector]: TraceAbstraction initialized [2020-07-10 15:05:55,805 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 10.07 03:05:54" (1/3) ... [2020-07-10 15:05:55,806 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@568cabf7 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 10.07 03:05:55, skipping insertion in model container [2020-07-10 15:05:55,806 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.07 03:05:55" (2/3) ... [2020-07-10 15:05:55,807 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@568cabf7 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 10.07 03:05:55, skipping insertion in model container [2020-07-10 15:05:55,807 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 10.07 03:05:55" (3/3) ... [2020-07-10 15:05:55,809 INFO L109 eAbstractionObserver]: Analyzing ICFG rule60_list2.c_1.i [2020-07-10 15:05:55,820 INFO L157 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2020-07-10 15:05:55,828 INFO L169 ceAbstractionStarter]: Appying trace abstraction to program that has 1 error locations. [2020-07-10 15:05:55,843 INFO L251 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2020-07-10 15:05:55,869 INFO L375 AbstractCegarLoop]: Interprodecural is true [2020-07-10 15:05:55,869 INFO L376 AbstractCegarLoop]: Hoare is true [2020-07-10 15:05:55,869 INFO L377 AbstractCegarLoop]: Compute interpolants for FPandBP [2020-07-10 15:05:55,869 INFO L378 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2020-07-10 15:05:55,870 INFO L379 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2020-07-10 15:05:55,870 INFO L380 AbstractCegarLoop]: Difference is false [2020-07-10 15:05:55,870 INFO L381 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2020-07-10 15:05:55,870 INFO L385 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2020-07-10 15:05:55,891 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states. [2020-07-10 15:05:55,897 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 14 [2020-07-10 15:05:55,898 INFO L414 BasicCegarLoop]: Found error trace [2020-07-10 15:05:55,899 INFO L422 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-10 15:05:55,899 INFO L427 AbstractCegarLoop]: === Iteration 1 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-10 15:05:55,906 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-10 15:05:55,906 INFO L82 PathProgramCache]: Analyzing trace with hash -573637036, now seen corresponding path program 1 times [2020-07-10 15:05:55,918 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-10 15:05:55,918 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [919593579] [2020-07-10 15:05:55,919 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-10 15:05:56,052 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:05:56,253 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:05:56,274 INFO L280 TraceCheckUtils]: 0: Hoare triple {60#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;call ~#head~0.base, ~#head~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {51#true} is VALID [2020-07-10 15:05:56,275 INFO L280 TraceCheckUtils]: 1: Hoare triple {51#true} assume true; {51#true} is VALID [2020-07-10 15:05:56,275 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {51#true} {51#true} #89#return; {51#true} is VALID [2020-07-10 15:05:56,279 INFO L263 TraceCheckUtils]: 0: Hoare triple {51#true} call ULTIMATE.init(); {60#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:05:56,280 INFO L280 TraceCheckUtils]: 1: Hoare triple {60#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;call ~#head~0.base, ~#head~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {51#true} is VALID [2020-07-10 15:05:56,280 INFO L280 TraceCheckUtils]: 2: Hoare triple {51#true} assume true; {51#true} is VALID [2020-07-10 15:05:56,280 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {51#true} {51#true} #89#return; {51#true} is VALID [2020-07-10 15:05:56,281 INFO L263 TraceCheckUtils]: 4: Hoare triple {51#true} call #t~ret34 := main(); {51#true} is VALID [2020-07-10 15:05:56,281 INFO L280 TraceCheckUtils]: 5: Hoare triple {51#true} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {51#true} is VALID [2020-07-10 15:05:56,282 INFO L263 TraceCheckUtils]: 6: Hoare triple {51#true} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {56#(= 8 |my_malloc_#in~size|)} is VALID [2020-07-10 15:05:56,284 INFO L280 TraceCheckUtils]: 7: Hoare triple {56#(= 8 |my_malloc_#in~size|)} ~size := #in~size; {57#(= 8 my_malloc_~size)} is VALID [2020-07-10 15:05:56,285 INFO L263 TraceCheckUtils]: 8: Hoare triple {57#(= 8 my_malloc_~size)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {58#(= 8 |__getMemory_#in~size|)} is VALID [2020-07-10 15:05:56,286 INFO L280 TraceCheckUtils]: 9: Hoare triple {58#(= 8 |__getMemory_#in~size|)} ~size := #in~size; {59#(= 8 __getMemory_~size)} is VALID [2020-07-10 15:05:56,287 INFO L280 TraceCheckUtils]: 10: Hoare triple {59#(= 8 __getMemory_~size)} assume !(~size > 0); {52#false} is VALID [2020-07-10 15:05:56,287 INFO L263 TraceCheckUtils]: 11: Hoare triple {52#false} call __blast_assert(); {52#false} is VALID [2020-07-10 15:05:56,288 INFO L280 TraceCheckUtils]: 12: Hoare triple {52#false} assume !false; {52#false} is VALID [2020-07-10 15:05:56,290 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2020-07-10 15:05:56,291 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [919593579] [2020-07-10 15:05:56,292 INFO L220 FreeRefinementEngine]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2020-07-10 15:05:56,292 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [7] imperfect sequences [] total 7 [2020-07-10 15:05:56,293 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1392727894] [2020-07-10 15:05:56,300 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 13 [2020-07-10 15:05:56,303 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-10 15:05:56,308 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states. [2020-07-10 15:05:56,333 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 13 edges. 13 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:05:56,334 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2020-07-10 15:05:56,334 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-10 15:05:56,343 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2020-07-10 15:05:56,344 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=11, Invalid=31, Unknown=0, NotChecked=0, Total=42 [2020-07-10 15:05:56,346 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 7 states. [2020-07-10 15:05:57,455 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:05:57,456 INFO L93 Difference]: Finished difference Result 90 states and 119 transitions. [2020-07-10 15:05:57,456 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2020-07-10 15:05:57,456 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 13 [2020-07-10 15:05:57,457 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-10 15:05:57,459 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2020-07-10 15:05:57,496 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 119 transitions. [2020-07-10 15:05:57,497 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2020-07-10 15:05:57,505 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 119 transitions. [2020-07-10 15:05:57,506 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 119 transitions. [2020-07-10 15:05:57,704 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 119 edges. 119 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:05:57,719 INFO L225 Difference]: With dead ends: 90 [2020-07-10 15:05:57,719 INFO L226 Difference]: Without dead ends: 44 [2020-07-10 15:05:57,724 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 3 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 13 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=41, Invalid=115, Unknown=0, NotChecked=0, Total=156 [2020-07-10 15:05:57,744 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 44 states. [2020-07-10 15:05:57,827 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 44 to 40. [2020-07-10 15:05:57,828 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-10 15:05:57,829 INFO L82 GeneralOperation]: Start isEquivalent. First operand 44 states. Second operand 40 states. [2020-07-10 15:05:57,829 INFO L74 IsIncluded]: Start isIncluded. First operand 44 states. Second operand 40 states. [2020-07-10 15:05:57,829 INFO L87 Difference]: Start difference. First operand 44 states. Second operand 40 states. [2020-07-10 15:05:57,836 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:05:57,836 INFO L93 Difference]: Finished difference Result 44 states and 52 transitions. [2020-07-10 15:05:57,837 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 52 transitions. [2020-07-10 15:05:57,838 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:05:57,838 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:05:57,838 INFO L74 IsIncluded]: Start isIncluded. First operand 40 states. Second operand 44 states. [2020-07-10 15:05:57,839 INFO L87 Difference]: Start difference. First operand 40 states. Second operand 44 states. [2020-07-10 15:05:57,844 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:05:57,844 INFO L93 Difference]: Finished difference Result 44 states and 52 transitions. [2020-07-10 15:05:57,844 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 52 transitions. [2020-07-10 15:05:57,846 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:05:57,846 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:05:57,846 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-10 15:05:57,846 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-10 15:05:57,847 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 40 states. [2020-07-10 15:05:57,850 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 40 states to 40 states and 46 transitions. [2020-07-10 15:05:57,852 INFO L78 Accepts]: Start accepts. Automaton has 40 states and 46 transitions. Word has length 13 [2020-07-10 15:05:57,852 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-10 15:05:57,853 INFO L479 AbstractCegarLoop]: Abstraction has 40 states and 46 transitions. [2020-07-10 15:05:57,853 INFO L480 AbstractCegarLoop]: Interpolant automaton has 7 states. [2020-07-10 15:05:57,853 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 46 transitions. [2020-07-10 15:05:57,854 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 39 [2020-07-10 15:05:57,855 INFO L414 BasicCegarLoop]: Found error trace [2020-07-10 15:05:57,855 INFO L422 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-10 15:05:57,855 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2020-07-10 15:05:57,856 INFO L427 AbstractCegarLoop]: === Iteration 2 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-10 15:05:57,856 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-10 15:05:57,856 INFO L82 PathProgramCache]: Analyzing trace with hash 1917870949, now seen corresponding path program 1 times [2020-07-10 15:05:57,857 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-10 15:05:57,857 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1227597307] [2020-07-10 15:05:57,857 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-10 15:05:57,896 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:05:58,040 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:05:58,065 INFO L280 TraceCheckUtils]: 0: Hoare triple {372#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;call ~#head~0.base, ~#head~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {343#true} is VALID [2020-07-10 15:05:58,066 INFO L280 TraceCheckUtils]: 1: Hoare triple {343#true} assume true; {343#true} is VALID [2020-07-10 15:05:58,066 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {343#true} {343#true} #89#return; {343#true} is VALID [2020-07-10 15:05:58,103 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:05:58,177 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:05:58,218 INFO L280 TraceCheckUtils]: 0: Hoare triple {373#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {343#true} is VALID [2020-07-10 15:05:58,218 INFO L280 TraceCheckUtils]: 1: Hoare triple {343#true} assume ~size > 0; {343#true} is VALID [2020-07-10 15:05:58,219 INFO L280 TraceCheckUtils]: 2: Hoare triple {343#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {343#true} is VALID [2020-07-10 15:05:58,220 INFO L280 TraceCheckUtils]: 3: Hoare triple {343#true} assume 0 == #t~nondet29;havoc #t~nondet29;#res.base, #res.offset := 0, 0; {382#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} is VALID [2020-07-10 15:05:58,221 INFO L280 TraceCheckUtils]: 4: Hoare triple {382#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} assume true; {382#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} is VALID [2020-07-10 15:05:58,222 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {382#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} {343#true} #69#return; {380#(and (<= |my_malloc_#t~ret30.offset| 0) (<= 0 |my_malloc_#t~ret30.offset|) (<= 0 |my_malloc_#t~ret30.base|) (<= |my_malloc_#t~ret30.base| 0))} is VALID [2020-07-10 15:05:58,223 INFO L280 TraceCheckUtils]: 0: Hoare triple {373#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {343#true} is VALID [2020-07-10 15:05:58,224 INFO L263 TraceCheckUtils]: 1: Hoare triple {343#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {373#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:05:58,225 INFO L280 TraceCheckUtils]: 2: Hoare triple {373#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {343#true} is VALID [2020-07-10 15:05:58,225 INFO L280 TraceCheckUtils]: 3: Hoare triple {343#true} assume ~size > 0; {343#true} is VALID [2020-07-10 15:05:58,225 INFO L280 TraceCheckUtils]: 4: Hoare triple {343#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {343#true} is VALID [2020-07-10 15:05:58,226 INFO L280 TraceCheckUtils]: 5: Hoare triple {343#true} assume 0 == #t~nondet29;havoc #t~nondet29;#res.base, #res.offset := 0, 0; {382#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} is VALID [2020-07-10 15:05:58,227 INFO L280 TraceCheckUtils]: 6: Hoare triple {382#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} assume true; {382#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} is VALID [2020-07-10 15:05:58,228 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {382#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} {343#true} #69#return; {380#(and (<= |my_malloc_#t~ret30.offset| 0) (<= 0 |my_malloc_#t~ret30.offset|) (<= 0 |my_malloc_#t~ret30.base|) (<= |my_malloc_#t~ret30.base| 0))} is VALID [2020-07-10 15:05:58,229 INFO L280 TraceCheckUtils]: 8: Hoare triple {380#(and (<= |my_malloc_#t~ret30.offset| 0) (<= 0 |my_malloc_#t~ret30.offset|) (<= 0 |my_malloc_#t~ret30.base|) (<= |my_malloc_#t~ret30.base| 0))} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {381#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} is VALID [2020-07-10 15:05:58,230 INFO L280 TraceCheckUtils]: 9: Hoare triple {381#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} assume true; {381#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} is VALID [2020-07-10 15:05:58,232 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {381#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} {343#true} #71#return; {359#(and (= 0 |main_#t~ret32.base|) (= |main_#t~ret32.offset| 0))} is VALID [2020-07-10 15:05:58,239 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:05:58,249 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:05:58,255 INFO L280 TraceCheckUtils]: 0: Hoare triple {373#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {343#true} is VALID [2020-07-10 15:05:58,255 INFO L280 TraceCheckUtils]: 1: Hoare triple {343#true} assume ~size > 0; {343#true} is VALID [2020-07-10 15:05:58,256 INFO L280 TraceCheckUtils]: 2: Hoare triple {343#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {343#true} is VALID [2020-07-10 15:05:58,256 INFO L280 TraceCheckUtils]: 3: Hoare triple {343#true} assume 0 == #t~nondet29;havoc #t~nondet29;#res.base, #res.offset := 0, 0; {343#true} is VALID [2020-07-10 15:05:58,256 INFO L280 TraceCheckUtils]: 4: Hoare triple {343#true} assume true; {343#true} is VALID [2020-07-10 15:05:58,257 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {343#true} {343#true} #69#return; {343#true} is VALID [2020-07-10 15:05:58,257 INFO L280 TraceCheckUtils]: 0: Hoare triple {373#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {343#true} is VALID [2020-07-10 15:05:58,258 INFO L263 TraceCheckUtils]: 1: Hoare triple {343#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {373#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:05:58,259 INFO L280 TraceCheckUtils]: 2: Hoare triple {373#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {343#true} is VALID [2020-07-10 15:05:58,259 INFO L280 TraceCheckUtils]: 3: Hoare triple {343#true} assume ~size > 0; {343#true} is VALID [2020-07-10 15:05:58,259 INFO L280 TraceCheckUtils]: 4: Hoare triple {343#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {343#true} is VALID [2020-07-10 15:05:58,260 INFO L280 TraceCheckUtils]: 5: Hoare triple {343#true} assume 0 == #t~nondet29;havoc #t~nondet29;#res.base, #res.offset := 0, 0; {343#true} is VALID [2020-07-10 15:05:58,260 INFO L280 TraceCheckUtils]: 6: Hoare triple {343#true} assume true; {343#true} is VALID [2020-07-10 15:05:58,260 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {343#true} {343#true} #69#return; {343#true} is VALID [2020-07-10 15:05:58,261 INFO L280 TraceCheckUtils]: 8: Hoare triple {343#true} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {343#true} is VALID [2020-07-10 15:05:58,261 INFO L280 TraceCheckUtils]: 9: Hoare triple {343#true} assume true; {343#true} is VALID [2020-07-10 15:05:58,262 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {343#true} {360#(and (= 0 main_~dev1~0.base) (= 0 main_~dev1~0.offset))} #73#return; {360#(and (= 0 main_~dev1~0.base) (= 0 main_~dev1~0.offset))} is VALID [2020-07-10 15:05:58,264 INFO L263 TraceCheckUtils]: 0: Hoare triple {343#true} call ULTIMATE.init(); {372#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:05:58,264 INFO L280 TraceCheckUtils]: 1: Hoare triple {372#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;call ~#head~0.base, ~#head~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {343#true} is VALID [2020-07-10 15:05:58,265 INFO L280 TraceCheckUtils]: 2: Hoare triple {343#true} assume true; {343#true} is VALID [2020-07-10 15:05:58,265 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {343#true} {343#true} #89#return; {343#true} is VALID [2020-07-10 15:05:58,265 INFO L263 TraceCheckUtils]: 4: Hoare triple {343#true} call #t~ret34 := main(); {343#true} is VALID [2020-07-10 15:05:58,265 INFO L280 TraceCheckUtils]: 5: Hoare triple {343#true} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {343#true} is VALID [2020-07-10 15:05:58,266 INFO L263 TraceCheckUtils]: 6: Hoare triple {343#true} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {373#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:05:58,267 INFO L280 TraceCheckUtils]: 7: Hoare triple {373#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {343#true} is VALID [2020-07-10 15:05:58,268 INFO L263 TraceCheckUtils]: 8: Hoare triple {343#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {373#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:05:58,268 INFO L280 TraceCheckUtils]: 9: Hoare triple {373#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {343#true} is VALID [2020-07-10 15:05:58,269 INFO L280 TraceCheckUtils]: 10: Hoare triple {343#true} assume ~size > 0; {343#true} is VALID [2020-07-10 15:05:58,269 INFO L280 TraceCheckUtils]: 11: Hoare triple {343#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {343#true} is VALID [2020-07-10 15:05:58,270 INFO L280 TraceCheckUtils]: 12: Hoare triple {343#true} assume 0 == #t~nondet29;havoc #t~nondet29;#res.base, #res.offset := 0, 0; {382#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} is VALID [2020-07-10 15:05:58,271 INFO L280 TraceCheckUtils]: 13: Hoare triple {382#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} assume true; {382#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} is VALID [2020-07-10 15:05:58,272 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {382#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} {343#true} #69#return; {380#(and (<= |my_malloc_#t~ret30.offset| 0) (<= 0 |my_malloc_#t~ret30.offset|) (<= 0 |my_malloc_#t~ret30.base|) (<= |my_malloc_#t~ret30.base| 0))} is VALID [2020-07-10 15:05:58,273 INFO L280 TraceCheckUtils]: 15: Hoare triple {380#(and (<= |my_malloc_#t~ret30.offset| 0) (<= 0 |my_malloc_#t~ret30.offset|) (<= 0 |my_malloc_#t~ret30.base|) (<= |my_malloc_#t~ret30.base| 0))} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {381#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} is VALID [2020-07-10 15:05:58,274 INFO L280 TraceCheckUtils]: 16: Hoare triple {381#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} assume true; {381#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} is VALID [2020-07-10 15:05:58,275 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {381#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} {343#true} #71#return; {359#(and (= 0 |main_#t~ret32.base|) (= |main_#t~ret32.offset| 0))} is VALID [2020-07-10 15:05:58,276 INFO L280 TraceCheckUtils]: 18: Hoare triple {359#(and (= 0 |main_#t~ret32.base|) (= |main_#t~ret32.offset| 0))} ~dev1~0.base, ~dev1~0.offset := #t~ret32.base, #t~ret32.offset;havoc #t~ret32.base, #t~ret32.offset; {360#(and (= 0 main_~dev1~0.base) (= 0 main_~dev1~0.offset))} is VALID [2020-07-10 15:05:58,277 INFO L263 TraceCheckUtils]: 19: Hoare triple {360#(and (= 0 main_~dev1~0.base) (= 0 main_~dev1~0.offset))} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {373#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:05:58,278 INFO L280 TraceCheckUtils]: 20: Hoare triple {373#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {343#true} is VALID [2020-07-10 15:05:58,279 INFO L263 TraceCheckUtils]: 21: Hoare triple {343#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {373#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:05:58,279 INFO L280 TraceCheckUtils]: 22: Hoare triple {373#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {343#true} is VALID [2020-07-10 15:05:58,279 INFO L280 TraceCheckUtils]: 23: Hoare triple {343#true} assume ~size > 0; {343#true} is VALID [2020-07-10 15:05:58,280 INFO L280 TraceCheckUtils]: 24: Hoare triple {343#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {343#true} is VALID [2020-07-10 15:05:58,280 INFO L280 TraceCheckUtils]: 25: Hoare triple {343#true} assume 0 == #t~nondet29;havoc #t~nondet29;#res.base, #res.offset := 0, 0; {343#true} is VALID [2020-07-10 15:05:58,280 INFO L280 TraceCheckUtils]: 26: Hoare triple {343#true} assume true; {343#true} is VALID [2020-07-10 15:05:58,280 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {343#true} {343#true} #69#return; {343#true} is VALID [2020-07-10 15:05:58,281 INFO L280 TraceCheckUtils]: 28: Hoare triple {343#true} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {343#true} is VALID [2020-07-10 15:05:58,281 INFO L280 TraceCheckUtils]: 29: Hoare triple {343#true} assume true; {343#true} is VALID [2020-07-10 15:05:58,282 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {343#true} {360#(and (= 0 main_~dev1~0.base) (= 0 main_~dev1~0.offset))} #73#return; {360#(and (= 0 main_~dev1~0.base) (= 0 main_~dev1~0.offset))} is VALID [2020-07-10 15:05:58,283 INFO L280 TraceCheckUtils]: 31: Hoare triple {360#(and (= 0 main_~dev1~0.base) (= 0 main_~dev1~0.offset))} ~dev2~0.base, ~dev2~0.offset := #t~ret33.base, #t~ret33.offset;havoc #t~ret33.base, #t~ret33.offset; {360#(and (= 0 main_~dev1~0.base) (= 0 main_~dev1~0.offset))} is VALID [2020-07-10 15:05:58,284 INFO L280 TraceCheckUtils]: 32: Hoare triple {360#(and (= 0 main_~dev1~0.base) (= 0 main_~dev1~0.offset))} assume (~dev1~0.base != 0 || ~dev1~0.offset != 0) && (~dev2~0.base != 0 || ~dev2~0.offset != 0); {344#false} is VALID [2020-07-10 15:05:58,284 INFO L263 TraceCheckUtils]: 33: Hoare triple {344#false} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {344#false} is VALID [2020-07-10 15:05:58,285 INFO L280 TraceCheckUtils]: 34: Hoare triple {344#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {344#false} is VALID [2020-07-10 15:05:58,285 INFO L280 TraceCheckUtils]: 35: Hoare triple {344#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {344#false} is VALID [2020-07-10 15:05:58,285 INFO L263 TraceCheckUtils]: 36: Hoare triple {344#false} call __blast_assert(); {344#false} is VALID [2020-07-10 15:05:58,286 INFO L280 TraceCheckUtils]: 37: Hoare triple {344#false} assume !false; {344#false} is VALID [2020-07-10 15:05:58,289 INFO L134 CoverageAnalysis]: Checked inductivity of 11 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2020-07-10 15:05:58,289 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1227597307] [2020-07-10 15:05:58,290 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1947134136] [2020-07-10 15:05:58,290 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-10 15:05:58,409 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:05:58,412 INFO L264 TraceCheckSpWp]: Trace formula consists of 232 conjuncts, 21 conjunts are in the unsatisfiable core [2020-07-10 15:05:58,429 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:05:58,436 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-10 15:05:58,544 INFO L263 TraceCheckUtils]: 0: Hoare triple {343#true} call ULTIMATE.init(); {343#true} is VALID [2020-07-10 15:05:58,544 INFO L280 TraceCheckUtils]: 1: Hoare triple {343#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;call ~#head~0.base, ~#head~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {343#true} is VALID [2020-07-10 15:05:58,545 INFO L280 TraceCheckUtils]: 2: Hoare triple {343#true} assume true; {343#true} is VALID [2020-07-10 15:05:58,545 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {343#true} {343#true} #89#return; {343#true} is VALID [2020-07-10 15:05:58,545 INFO L263 TraceCheckUtils]: 4: Hoare triple {343#true} call #t~ret34 := main(); {343#true} is VALID [2020-07-10 15:05:58,546 INFO L280 TraceCheckUtils]: 5: Hoare triple {343#true} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {343#true} is VALID [2020-07-10 15:05:58,546 INFO L263 TraceCheckUtils]: 6: Hoare triple {343#true} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {343#true} is VALID [2020-07-10 15:05:58,546 INFO L280 TraceCheckUtils]: 7: Hoare triple {343#true} ~size := #in~size; {343#true} is VALID [2020-07-10 15:05:58,546 INFO L263 TraceCheckUtils]: 8: Hoare triple {343#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {343#true} is VALID [2020-07-10 15:05:58,547 INFO L280 TraceCheckUtils]: 9: Hoare triple {343#true} ~size := #in~size; {343#true} is VALID [2020-07-10 15:05:58,547 INFO L280 TraceCheckUtils]: 10: Hoare triple {343#true} assume ~size > 0; {343#true} is VALID [2020-07-10 15:05:58,547 INFO L280 TraceCheckUtils]: 11: Hoare triple {343#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {343#true} is VALID [2020-07-10 15:05:58,548 INFO L280 TraceCheckUtils]: 12: Hoare triple {343#true} assume 0 == #t~nondet29;havoc #t~nondet29;#res.base, #res.offset := 0, 0; {382#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} is VALID [2020-07-10 15:05:58,549 INFO L280 TraceCheckUtils]: 13: Hoare triple {382#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} assume true; {382#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} is VALID [2020-07-10 15:05:58,551 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {382#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} {343#true} #69#return; {380#(and (<= |my_malloc_#t~ret30.offset| 0) (<= 0 |my_malloc_#t~ret30.offset|) (<= 0 |my_malloc_#t~ret30.base|) (<= |my_malloc_#t~ret30.base| 0))} is VALID [2020-07-10 15:05:58,552 INFO L280 TraceCheckUtils]: 15: Hoare triple {380#(and (<= |my_malloc_#t~ret30.offset| 0) (<= 0 |my_malloc_#t~ret30.offset|) (<= 0 |my_malloc_#t~ret30.base|) (<= |my_malloc_#t~ret30.base| 0))} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {381#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} is VALID [2020-07-10 15:05:58,553 INFO L280 TraceCheckUtils]: 16: Hoare triple {381#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} assume true; {381#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} is VALID [2020-07-10 15:05:58,554 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {381#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} {343#true} #71#return; {359#(and (= 0 |main_#t~ret32.base|) (= |main_#t~ret32.offset| 0))} is VALID [2020-07-10 15:05:58,555 INFO L280 TraceCheckUtils]: 18: Hoare triple {359#(and (= 0 |main_#t~ret32.base|) (= |main_#t~ret32.offset| 0))} ~dev1~0.base, ~dev1~0.offset := #t~ret32.base, #t~ret32.offset;havoc #t~ret32.base, #t~ret32.offset; {360#(and (= 0 main_~dev1~0.base) (= 0 main_~dev1~0.offset))} is VALID [2020-07-10 15:05:58,555 INFO L263 TraceCheckUtils]: 19: Hoare triple {360#(and (= 0 main_~dev1~0.base) (= 0 main_~dev1~0.offset))} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {343#true} is VALID [2020-07-10 15:05:58,556 INFO L280 TraceCheckUtils]: 20: Hoare triple {343#true} ~size := #in~size; {343#true} is VALID [2020-07-10 15:05:58,556 INFO L263 TraceCheckUtils]: 21: Hoare triple {343#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {343#true} is VALID [2020-07-10 15:05:58,556 INFO L280 TraceCheckUtils]: 22: Hoare triple {343#true} ~size := #in~size; {343#true} is VALID [2020-07-10 15:05:58,557 INFO L280 TraceCheckUtils]: 23: Hoare triple {343#true} assume ~size > 0; {343#true} is VALID [2020-07-10 15:05:58,557 INFO L280 TraceCheckUtils]: 24: Hoare triple {343#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {343#true} is VALID [2020-07-10 15:05:58,557 INFO L280 TraceCheckUtils]: 25: Hoare triple {343#true} assume 0 == #t~nondet29;havoc #t~nondet29;#res.base, #res.offset := 0, 0; {343#true} is VALID [2020-07-10 15:05:58,557 INFO L280 TraceCheckUtils]: 26: Hoare triple {343#true} assume true; {343#true} is VALID [2020-07-10 15:05:58,558 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {343#true} {343#true} #69#return; {343#true} is VALID [2020-07-10 15:05:58,558 INFO L280 TraceCheckUtils]: 28: Hoare triple {343#true} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {343#true} is VALID [2020-07-10 15:05:58,558 INFO L280 TraceCheckUtils]: 29: Hoare triple {343#true} assume true; {343#true} is VALID [2020-07-10 15:05:58,559 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {343#true} {360#(and (= 0 main_~dev1~0.base) (= 0 main_~dev1~0.offset))} #73#return; {360#(and (= 0 main_~dev1~0.base) (= 0 main_~dev1~0.offset))} is VALID [2020-07-10 15:05:58,560 INFO L280 TraceCheckUtils]: 31: Hoare triple {360#(and (= 0 main_~dev1~0.base) (= 0 main_~dev1~0.offset))} ~dev2~0.base, ~dev2~0.offset := #t~ret33.base, #t~ret33.offset;havoc #t~ret33.base, #t~ret33.offset; {360#(and (= 0 main_~dev1~0.base) (= 0 main_~dev1~0.offset))} is VALID [2020-07-10 15:05:58,561 INFO L280 TraceCheckUtils]: 32: Hoare triple {360#(and (= 0 main_~dev1~0.base) (= 0 main_~dev1~0.offset))} assume (~dev1~0.base != 0 || ~dev1~0.offset != 0) && (~dev2~0.base != 0 || ~dev2~0.offset != 0); {344#false} is VALID [2020-07-10 15:05:58,562 INFO L263 TraceCheckUtils]: 33: Hoare triple {344#false} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {344#false} is VALID [2020-07-10 15:05:58,562 INFO L280 TraceCheckUtils]: 34: Hoare triple {344#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {344#false} is VALID [2020-07-10 15:05:58,562 INFO L280 TraceCheckUtils]: 35: Hoare triple {344#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {344#false} is VALID [2020-07-10 15:05:58,563 INFO L263 TraceCheckUtils]: 36: Hoare triple {344#false} call __blast_assert(); {344#false} is VALID [2020-07-10 15:05:58,563 INFO L280 TraceCheckUtils]: 37: Hoare triple {344#false} assume !false; {344#false} is VALID [2020-07-10 15:05:58,565 INFO L134 CoverageAnalysis]: Checked inductivity of 11 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2020-07-10 15:05:58,566 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-10 15:05:58,566 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 7] total 9 [2020-07-10 15:05:58,568 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [686187990] [2020-07-10 15:05:58,569 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 38 [2020-07-10 15:05:58,574 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-10 15:05:58,574 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states. [2020-07-10 15:05:58,619 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 40 edges. 40 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:05:58,620 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2020-07-10 15:05:58,620 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-10 15:05:58,620 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2020-07-10 15:05:58,621 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=16, Invalid=56, Unknown=0, NotChecked=0, Total=72 [2020-07-10 15:05:58,621 INFO L87 Difference]: Start difference. First operand 40 states and 46 transitions. Second operand 9 states. [2020-07-10 15:05:59,570 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:05:59,570 INFO L93 Difference]: Finished difference Result 71 states and 86 transitions. [2020-07-10 15:05:59,571 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2020-07-10 15:05:59,571 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 38 [2020-07-10 15:05:59,571 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-10 15:05:59,571 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2020-07-10 15:05:59,576 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 86 transitions. [2020-07-10 15:05:59,576 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2020-07-10 15:05:59,580 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 86 transitions. [2020-07-10 15:05:59,581 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 86 transitions. [2020-07-10 15:05:59,750 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 86 edges. 86 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:05:59,754 INFO L225 Difference]: With dead ends: 71 [2020-07-10 15:05:59,754 INFO L226 Difference]: Without dead ends: 49 [2020-07-10 15:05:59,756 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 54 GetRequests, 45 SyntacticMatches, 2 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 4 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=16, Invalid=56, Unknown=0, NotChecked=0, Total=72 [2020-07-10 15:05:59,756 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 49 states. [2020-07-10 15:05:59,816 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 49 to 45. [2020-07-10 15:05:59,816 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-10 15:05:59,816 INFO L82 GeneralOperation]: Start isEquivalent. First operand 49 states. Second operand 45 states. [2020-07-10 15:05:59,817 INFO L74 IsIncluded]: Start isIncluded. First operand 49 states. Second operand 45 states. [2020-07-10 15:05:59,817 INFO L87 Difference]: Start difference. First operand 49 states. Second operand 45 states. [2020-07-10 15:05:59,822 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:05:59,822 INFO L93 Difference]: Finished difference Result 49 states and 57 transitions. [2020-07-10 15:05:59,822 INFO L276 IsEmpty]: Start isEmpty. Operand 49 states and 57 transitions. [2020-07-10 15:05:59,823 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:05:59,824 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:05:59,824 INFO L74 IsIncluded]: Start isIncluded. First operand 45 states. Second operand 49 states. [2020-07-10 15:05:59,824 INFO L87 Difference]: Start difference. First operand 45 states. Second operand 49 states. [2020-07-10 15:05:59,828 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:05:59,829 INFO L93 Difference]: Finished difference Result 49 states and 57 transitions. [2020-07-10 15:05:59,829 INFO L276 IsEmpty]: Start isEmpty. Operand 49 states and 57 transitions. [2020-07-10 15:05:59,830 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:05:59,830 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:05:59,830 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-10 15:05:59,831 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-10 15:05:59,831 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 45 states. [2020-07-10 15:05:59,834 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 45 states to 45 states and 51 transitions. [2020-07-10 15:05:59,834 INFO L78 Accepts]: Start accepts. Automaton has 45 states and 51 transitions. Word has length 38 [2020-07-10 15:05:59,834 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-10 15:05:59,835 INFO L479 AbstractCegarLoop]: Abstraction has 45 states and 51 transitions. [2020-07-10 15:05:59,835 INFO L480 AbstractCegarLoop]: Interpolant automaton has 9 states. [2020-07-10 15:05:59,835 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 51 transitions. [2020-07-10 15:05:59,836 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 39 [2020-07-10 15:05:59,836 INFO L414 BasicCegarLoop]: Found error trace [2020-07-10 15:05:59,836 INFO L422 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-10 15:06:00,047 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 2 z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable1 [2020-07-10 15:06:00,047 INFO L427 AbstractCegarLoop]: === Iteration 3 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-10 15:06:00,048 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-10 15:06:00,048 INFO L82 PathProgramCache]: Analyzing trace with hash 1948890756, now seen corresponding path program 1 times [2020-07-10 15:06:00,049 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-10 15:06:00,049 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [892271976] [2020-07-10 15:06:00,050 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-10 15:06:00,107 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:00,205 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:00,217 INFO L280 TraceCheckUtils]: 0: Hoare triple {791#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;call ~#head~0.base, ~#head~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {762#true} is VALID [2020-07-10 15:06:00,217 INFO L280 TraceCheckUtils]: 1: Hoare triple {762#true} assume true; {762#true} is VALID [2020-07-10 15:06:00,217 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {762#true} {762#true} #89#return; {762#true} is VALID [2020-07-10 15:06:00,234 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:00,240 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:00,246 INFO L280 TraceCheckUtils]: 0: Hoare triple {792#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {762#true} is VALID [2020-07-10 15:06:00,246 INFO L280 TraceCheckUtils]: 1: Hoare triple {762#true} assume ~size > 0; {762#true} is VALID [2020-07-10 15:06:00,246 INFO L280 TraceCheckUtils]: 2: Hoare triple {762#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {762#true} is VALID [2020-07-10 15:06:00,247 INFO L280 TraceCheckUtils]: 3: Hoare triple {762#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {762#true} is VALID [2020-07-10 15:06:00,247 INFO L280 TraceCheckUtils]: 4: Hoare triple {762#true} assume true; {762#true} is VALID [2020-07-10 15:06:00,247 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {762#true} {762#true} #69#return; {762#true} is VALID [2020-07-10 15:06:00,248 INFO L280 TraceCheckUtils]: 0: Hoare triple {792#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {762#true} is VALID [2020-07-10 15:06:00,249 INFO L263 TraceCheckUtils]: 1: Hoare triple {762#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {792#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:00,249 INFO L280 TraceCheckUtils]: 2: Hoare triple {792#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {762#true} is VALID [2020-07-10 15:06:00,250 INFO L280 TraceCheckUtils]: 3: Hoare triple {762#true} assume ~size > 0; {762#true} is VALID [2020-07-10 15:06:00,250 INFO L280 TraceCheckUtils]: 4: Hoare triple {762#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {762#true} is VALID [2020-07-10 15:06:00,250 INFO L280 TraceCheckUtils]: 5: Hoare triple {762#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {762#true} is VALID [2020-07-10 15:06:00,250 INFO L280 TraceCheckUtils]: 6: Hoare triple {762#true} assume true; {762#true} is VALID [2020-07-10 15:06:00,251 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {762#true} {762#true} #69#return; {762#true} is VALID [2020-07-10 15:06:00,251 INFO L280 TraceCheckUtils]: 8: Hoare triple {762#true} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {762#true} is VALID [2020-07-10 15:06:00,251 INFO L280 TraceCheckUtils]: 9: Hoare triple {762#true} assume true; {762#true} is VALID [2020-07-10 15:06:00,252 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {762#true} {762#true} #71#return; {762#true} is VALID [2020-07-10 15:06:00,258 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:00,319 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:00,358 INFO L280 TraceCheckUtils]: 0: Hoare triple {792#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {762#true} is VALID [2020-07-10 15:06:00,359 INFO L280 TraceCheckUtils]: 1: Hoare triple {762#true} assume ~size > 0; {762#true} is VALID [2020-07-10 15:06:00,359 INFO L280 TraceCheckUtils]: 2: Hoare triple {762#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {762#true} is VALID [2020-07-10 15:06:00,360 INFO L280 TraceCheckUtils]: 3: Hoare triple {762#true} assume 0 == #t~nondet29;havoc #t~nondet29;#res.base, #res.offset := 0, 0; {807#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} is VALID [2020-07-10 15:06:00,361 INFO L280 TraceCheckUtils]: 4: Hoare triple {807#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} assume true; {807#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} is VALID [2020-07-10 15:06:00,362 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {807#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} {762#true} #69#return; {805#(and (<= |my_malloc_#t~ret30.offset| 0) (<= 0 |my_malloc_#t~ret30.offset|) (<= 0 |my_malloc_#t~ret30.base|) (<= |my_malloc_#t~ret30.base| 0))} is VALID [2020-07-10 15:06:00,363 INFO L280 TraceCheckUtils]: 0: Hoare triple {792#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {762#true} is VALID [2020-07-10 15:06:00,364 INFO L263 TraceCheckUtils]: 1: Hoare triple {762#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {792#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:00,365 INFO L280 TraceCheckUtils]: 2: Hoare triple {792#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {762#true} is VALID [2020-07-10 15:06:00,365 INFO L280 TraceCheckUtils]: 3: Hoare triple {762#true} assume ~size > 0; {762#true} is VALID [2020-07-10 15:06:00,365 INFO L280 TraceCheckUtils]: 4: Hoare triple {762#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {762#true} is VALID [2020-07-10 15:06:00,369 INFO L280 TraceCheckUtils]: 5: Hoare triple {762#true} assume 0 == #t~nondet29;havoc #t~nondet29;#res.base, #res.offset := 0, 0; {807#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} is VALID [2020-07-10 15:06:00,371 INFO L280 TraceCheckUtils]: 6: Hoare triple {807#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} assume true; {807#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} is VALID [2020-07-10 15:06:00,373 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {807#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} {762#true} #69#return; {805#(and (<= |my_malloc_#t~ret30.offset| 0) (<= 0 |my_malloc_#t~ret30.offset|) (<= 0 |my_malloc_#t~ret30.base|) (<= |my_malloc_#t~ret30.base| 0))} is VALID [2020-07-10 15:06:00,375 INFO L280 TraceCheckUtils]: 8: Hoare triple {805#(and (<= |my_malloc_#t~ret30.offset| 0) (<= 0 |my_malloc_#t~ret30.offset|) (<= 0 |my_malloc_#t~ret30.base|) (<= |my_malloc_#t~ret30.base| 0))} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {806#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} is VALID [2020-07-10 15:06:00,376 INFO L280 TraceCheckUtils]: 9: Hoare triple {806#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} assume true; {806#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} is VALID [2020-07-10 15:06:00,377 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {806#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} {762#true} #73#return; {789#(and (= 0 |main_#t~ret33.offset|) (= 0 |main_#t~ret33.base|))} is VALID [2020-07-10 15:06:00,380 INFO L263 TraceCheckUtils]: 0: Hoare triple {762#true} call ULTIMATE.init(); {791#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:00,381 INFO L280 TraceCheckUtils]: 1: Hoare triple {791#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;call ~#head~0.base, ~#head~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {762#true} is VALID [2020-07-10 15:06:00,381 INFO L280 TraceCheckUtils]: 2: Hoare triple {762#true} assume true; {762#true} is VALID [2020-07-10 15:06:00,382 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {762#true} {762#true} #89#return; {762#true} is VALID [2020-07-10 15:06:00,382 INFO L263 TraceCheckUtils]: 4: Hoare triple {762#true} call #t~ret34 := main(); {762#true} is VALID [2020-07-10 15:06:00,382 INFO L280 TraceCheckUtils]: 5: Hoare triple {762#true} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {762#true} is VALID [2020-07-10 15:06:00,383 INFO L263 TraceCheckUtils]: 6: Hoare triple {762#true} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {792#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:00,383 INFO L280 TraceCheckUtils]: 7: Hoare triple {792#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {762#true} is VALID [2020-07-10 15:06:00,384 INFO L263 TraceCheckUtils]: 8: Hoare triple {762#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {792#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:00,385 INFO L280 TraceCheckUtils]: 9: Hoare triple {792#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {762#true} is VALID [2020-07-10 15:06:00,385 INFO L280 TraceCheckUtils]: 10: Hoare triple {762#true} assume ~size > 0; {762#true} is VALID [2020-07-10 15:06:00,385 INFO L280 TraceCheckUtils]: 11: Hoare triple {762#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {762#true} is VALID [2020-07-10 15:06:00,385 INFO L280 TraceCheckUtils]: 12: Hoare triple {762#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {762#true} is VALID [2020-07-10 15:06:00,386 INFO L280 TraceCheckUtils]: 13: Hoare triple {762#true} assume true; {762#true} is VALID [2020-07-10 15:06:00,386 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {762#true} {762#true} #69#return; {762#true} is VALID [2020-07-10 15:06:00,386 INFO L280 TraceCheckUtils]: 15: Hoare triple {762#true} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {762#true} is VALID [2020-07-10 15:06:00,387 INFO L280 TraceCheckUtils]: 16: Hoare triple {762#true} assume true; {762#true} is VALID [2020-07-10 15:06:00,387 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {762#true} {762#true} #71#return; {762#true} is VALID [2020-07-10 15:06:00,387 INFO L280 TraceCheckUtils]: 18: Hoare triple {762#true} ~dev1~0.base, ~dev1~0.offset := #t~ret32.base, #t~ret32.offset;havoc #t~ret32.base, #t~ret32.offset; {762#true} is VALID [2020-07-10 15:06:00,388 INFO L263 TraceCheckUtils]: 19: Hoare triple {762#true} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {792#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:00,388 INFO L280 TraceCheckUtils]: 20: Hoare triple {792#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {762#true} is VALID [2020-07-10 15:06:00,389 INFO L263 TraceCheckUtils]: 21: Hoare triple {762#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {792#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:00,390 INFO L280 TraceCheckUtils]: 22: Hoare triple {792#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {762#true} is VALID [2020-07-10 15:06:00,390 INFO L280 TraceCheckUtils]: 23: Hoare triple {762#true} assume ~size > 0; {762#true} is VALID [2020-07-10 15:06:00,390 INFO L280 TraceCheckUtils]: 24: Hoare triple {762#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {762#true} is VALID [2020-07-10 15:06:00,391 INFO L280 TraceCheckUtils]: 25: Hoare triple {762#true} assume 0 == #t~nondet29;havoc #t~nondet29;#res.base, #res.offset := 0, 0; {807#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} is VALID [2020-07-10 15:06:00,392 INFO L280 TraceCheckUtils]: 26: Hoare triple {807#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} assume true; {807#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} is VALID [2020-07-10 15:06:00,393 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {807#(and (<= |__getMemory_#res.base| 0) (<= |__getMemory_#res.offset| 0) (<= 0 |__getMemory_#res.offset|) (<= 0 |__getMemory_#res.base|))} {762#true} #69#return; {805#(and (<= |my_malloc_#t~ret30.offset| 0) (<= 0 |my_malloc_#t~ret30.offset|) (<= 0 |my_malloc_#t~ret30.base|) (<= |my_malloc_#t~ret30.base| 0))} is VALID [2020-07-10 15:06:00,394 INFO L280 TraceCheckUtils]: 28: Hoare triple {805#(and (<= |my_malloc_#t~ret30.offset| 0) (<= 0 |my_malloc_#t~ret30.offset|) (<= 0 |my_malloc_#t~ret30.base|) (<= |my_malloc_#t~ret30.base| 0))} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {806#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} is VALID [2020-07-10 15:06:00,395 INFO L280 TraceCheckUtils]: 29: Hoare triple {806#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} assume true; {806#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} is VALID [2020-07-10 15:06:00,397 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {806#(and (<= |my_malloc_#res.base| 0) (<= |my_malloc_#res.offset| 0) (<= 0 |my_malloc_#res.base|) (<= 0 |my_malloc_#res.offset|))} {762#true} #73#return; {789#(and (= 0 |main_#t~ret33.offset|) (= 0 |main_#t~ret33.base|))} is VALID [2020-07-10 15:06:00,398 INFO L280 TraceCheckUtils]: 31: Hoare triple {789#(and (= 0 |main_#t~ret33.offset|) (= 0 |main_#t~ret33.base|))} ~dev2~0.base, ~dev2~0.offset := #t~ret33.base, #t~ret33.offset;havoc #t~ret33.base, #t~ret33.offset; {790#(and (= 0 main_~dev2~0.offset) (= main_~dev2~0.base 0))} is VALID [2020-07-10 15:06:00,399 INFO L280 TraceCheckUtils]: 32: Hoare triple {790#(and (= 0 main_~dev2~0.offset) (= main_~dev2~0.base 0))} assume (~dev1~0.base != 0 || ~dev1~0.offset != 0) && (~dev2~0.base != 0 || ~dev2~0.offset != 0); {763#false} is VALID [2020-07-10 15:06:00,399 INFO L263 TraceCheckUtils]: 33: Hoare triple {763#false} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {763#false} is VALID [2020-07-10 15:06:00,399 INFO L280 TraceCheckUtils]: 34: Hoare triple {763#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {763#false} is VALID [2020-07-10 15:06:00,400 INFO L280 TraceCheckUtils]: 35: Hoare triple {763#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {763#false} is VALID [2020-07-10 15:06:00,400 INFO L263 TraceCheckUtils]: 36: Hoare triple {763#false} call __blast_assert(); {763#false} is VALID [2020-07-10 15:06:00,400 INFO L280 TraceCheckUtils]: 37: Hoare triple {763#false} assume !false; {763#false} is VALID [2020-07-10 15:06:00,403 INFO L134 CoverageAnalysis]: Checked inductivity of 11 backedges. 5 proven. 0 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2020-07-10 15:06:00,404 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [892271976] [2020-07-10 15:06:00,404 INFO L220 FreeRefinementEngine]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2020-07-10 15:06:00,404 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [] total 9 [2020-07-10 15:06:00,404 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1084343199] [2020-07-10 15:06:00,405 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 38 [2020-07-10 15:06:00,405 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-10 15:06:00,406 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states. [2020-07-10 15:06:00,446 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 33 edges. 33 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:06:00,447 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2020-07-10 15:06:00,447 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-10 15:06:00,447 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2020-07-10 15:06:00,447 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=16, Invalid=56, Unknown=0, NotChecked=0, Total=72 [2020-07-10 15:06:00,448 INFO L87 Difference]: Start difference. First operand 45 states and 51 transitions. Second operand 9 states. [2020-07-10 15:06:01,318 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:01,319 INFO L93 Difference]: Finished difference Result 69 states and 81 transitions. [2020-07-10 15:06:01,319 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2020-07-10 15:06:01,319 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 38 [2020-07-10 15:06:01,319 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-10 15:06:01,320 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2020-07-10 15:06:01,324 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 81 transitions. [2020-07-10 15:06:01,325 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2020-07-10 15:06:01,329 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 81 transitions. [2020-07-10 15:06:01,331 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 81 transitions. [2020-07-10 15:06:01,459 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 81 edges. 81 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:06:01,463 INFO L225 Difference]: With dead ends: 69 [2020-07-10 15:06:01,463 INFO L226 Difference]: Without dead ends: 44 [2020-07-10 15:06:01,464 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 10 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 3 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=16, Invalid=56, Unknown=0, NotChecked=0, Total=72 [2020-07-10 15:06:01,464 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 44 states. [2020-07-10 15:06:01,521 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 44 to 40. [2020-07-10 15:06:01,521 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-10 15:06:01,521 INFO L82 GeneralOperation]: Start isEquivalent. First operand 44 states. Second operand 40 states. [2020-07-10 15:06:01,522 INFO L74 IsIncluded]: Start isIncluded. First operand 44 states. Second operand 40 states. [2020-07-10 15:06:01,522 INFO L87 Difference]: Start difference. First operand 44 states. Second operand 40 states. [2020-07-10 15:06:01,526 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:01,527 INFO L93 Difference]: Finished difference Result 44 states and 51 transitions. [2020-07-10 15:06:01,527 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 51 transitions. [2020-07-10 15:06:01,528 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:01,528 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:01,528 INFO L74 IsIncluded]: Start isIncluded. First operand 40 states. Second operand 44 states. [2020-07-10 15:06:01,529 INFO L87 Difference]: Start difference. First operand 40 states. Second operand 44 states. [2020-07-10 15:06:01,532 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:01,532 INFO L93 Difference]: Finished difference Result 44 states and 51 transitions. [2020-07-10 15:06:01,532 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 51 transitions. [2020-07-10 15:06:01,533 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:01,534 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:01,534 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-10 15:06:01,534 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-10 15:06:01,534 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 40 states. [2020-07-10 15:06:01,536 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 40 states to 40 states and 45 transitions. [2020-07-10 15:06:01,537 INFO L78 Accepts]: Start accepts. Automaton has 40 states and 45 transitions. Word has length 38 [2020-07-10 15:06:01,537 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-10 15:06:01,537 INFO L479 AbstractCegarLoop]: Abstraction has 40 states and 45 transitions. [2020-07-10 15:06:01,537 INFO L480 AbstractCegarLoop]: Interpolant automaton has 9 states. [2020-07-10 15:06:01,537 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 45 transitions. [2020-07-10 15:06:01,538 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 39 [2020-07-10 15:06:01,538 INFO L414 BasicCegarLoop]: Found error trace [2020-07-10 15:06:01,539 INFO L422 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-10 15:06:01,539 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable2 [2020-07-10 15:06:01,539 INFO L427 AbstractCegarLoop]: === Iteration 4 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-10 15:06:01,539 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-10 15:06:01,539 INFO L82 PathProgramCache]: Analyzing trace with hash 1655487749, now seen corresponding path program 1 times [2020-07-10 15:06:01,540 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-10 15:06:01,540 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [777230744] [2020-07-10 15:06:01,540 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-10 15:06:01,558 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:01,739 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:01,749 INFO L280 TraceCheckUtils]: 0: Hoare triple {1085#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;call ~#head~0.base, ~#head~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {1057#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-10 15:06:01,750 INFO L280 TraceCheckUtils]: 1: Hoare triple {1057#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} assume true; {1057#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-10 15:06:01,751 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {1057#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} {1052#true} #89#return; {1057#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-10 15:06:01,770 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:01,812 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:01,829 INFO L280 TraceCheckUtils]: 0: Hoare triple {1086#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:01,830 INFO L280 TraceCheckUtils]: 1: Hoare triple {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:01,831 INFO L280 TraceCheckUtils]: 2: Hoare triple {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:01,831 INFO L280 TraceCheckUtils]: 3: Hoare triple {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:01,832 INFO L280 TraceCheckUtils]: 4: Hoare triple {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume true; {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:01,833 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #69#return; {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:01,834 INFO L280 TraceCheckUtils]: 0: Hoare triple {1086#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:01,834 INFO L263 TraceCheckUtils]: 1: Hoare triple {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {1086#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:01,835 INFO L280 TraceCheckUtils]: 2: Hoare triple {1086#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:01,835 INFO L280 TraceCheckUtils]: 3: Hoare triple {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:01,836 INFO L280 TraceCheckUtils]: 4: Hoare triple {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:01,836 INFO L280 TraceCheckUtils]: 5: Hoare triple {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:01,837 INFO L280 TraceCheckUtils]: 6: Hoare triple {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume true; {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:01,838 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #69#return; {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:01,838 INFO L280 TraceCheckUtils]: 8: Hoare triple {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:01,841 INFO L280 TraceCheckUtils]: 9: Hoare triple {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume true; {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:01,844 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} {1057#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} #71#return; {1069#(and (= 0 ~elem~0.offset) (<= 1 ~guard_malloc_counter~0.offset))} is VALID [2020-07-10 15:06:01,849 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:01,897 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:01,932 INFO L280 TraceCheckUtils]: 0: Hoare triple {1086#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:01,933 INFO L280 TraceCheckUtils]: 1: Hoare triple {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:01,934 INFO L280 TraceCheckUtils]: 2: Hoare triple {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:01,935 INFO L280 TraceCheckUtils]: 3: Hoare triple {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1103#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:01,936 INFO L280 TraceCheckUtils]: 4: Hoare triple {1103#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {1103#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:01,937 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {1103#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #69#return; {1101#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-10 15:06:01,938 INFO L280 TraceCheckUtils]: 0: Hoare triple {1086#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:01,939 INFO L263 TraceCheckUtils]: 1: Hoare triple {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {1086#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:01,940 INFO L280 TraceCheckUtils]: 2: Hoare triple {1086#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:01,941 INFO L280 TraceCheckUtils]: 3: Hoare triple {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:01,942 INFO L280 TraceCheckUtils]: 4: Hoare triple {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:01,943 INFO L280 TraceCheckUtils]: 5: Hoare triple {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1103#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:01,944 INFO L280 TraceCheckUtils]: 6: Hoare triple {1103#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {1103#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:01,945 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {1103#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #69#return; {1101#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-10 15:06:01,946 INFO L280 TraceCheckUtils]: 8: Hoare triple {1101#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {1102#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-10 15:06:01,947 INFO L280 TraceCheckUtils]: 9: Hoare triple {1102#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} assume true; {1102#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-10 15:06:01,949 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {1102#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} {1069#(and (= 0 ~elem~0.offset) (<= 1 ~guard_malloc_counter~0.offset))} #73#return; {1081#(and (= 0 ~elem~0.offset) (<= 2 |main_#t~ret33.offset|))} is VALID [2020-07-10 15:06:01,951 INFO L263 TraceCheckUtils]: 0: Hoare triple {1052#true} call ULTIMATE.init(); {1085#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:01,953 INFO L280 TraceCheckUtils]: 1: Hoare triple {1085#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;call ~#head~0.base, ~#head~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {1057#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-10 15:06:01,954 INFO L280 TraceCheckUtils]: 2: Hoare triple {1057#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} assume true; {1057#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-10 15:06:01,955 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1057#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} {1052#true} #89#return; {1057#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-10 15:06:01,956 INFO L263 TraceCheckUtils]: 4: Hoare triple {1057#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} call #t~ret34 := main(); {1057#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-10 15:06:01,957 INFO L280 TraceCheckUtils]: 5: Hoare triple {1057#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {1057#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-10 15:06:01,962 INFO L263 TraceCheckUtils]: 6: Hoare triple {1057#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {1086#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:01,972 INFO L280 TraceCheckUtils]: 7: Hoare triple {1086#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:01,973 INFO L263 TraceCheckUtils]: 8: Hoare triple {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {1086#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:01,977 INFO L280 TraceCheckUtils]: 9: Hoare triple {1086#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:01,978 INFO L280 TraceCheckUtils]: 10: Hoare triple {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:01,979 INFO L280 TraceCheckUtils]: 11: Hoare triple {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:01,982 INFO L280 TraceCheckUtils]: 12: Hoare triple {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:01,986 INFO L280 TraceCheckUtils]: 13: Hoare triple {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume true; {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:01,993 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #69#return; {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:02,000 INFO L280 TraceCheckUtils]: 15: Hoare triple {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:02,001 INFO L280 TraceCheckUtils]: 16: Hoare triple {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume true; {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:02,003 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} {1057#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} #71#return; {1069#(and (= 0 ~elem~0.offset) (<= 1 ~guard_malloc_counter~0.offset))} is VALID [2020-07-10 15:06:02,004 INFO L280 TraceCheckUtils]: 18: Hoare triple {1069#(and (= 0 ~elem~0.offset) (<= 1 ~guard_malloc_counter~0.offset))} ~dev1~0.base, ~dev1~0.offset := #t~ret32.base, #t~ret32.offset;havoc #t~ret32.base, #t~ret32.offset; {1069#(and (= 0 ~elem~0.offset) (<= 1 ~guard_malloc_counter~0.offset))} is VALID [2020-07-10 15:06:02,005 INFO L263 TraceCheckUtils]: 19: Hoare triple {1069#(and (= 0 ~elem~0.offset) (<= 1 ~guard_malloc_counter~0.offset))} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {1086#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:02,006 INFO L280 TraceCheckUtils]: 20: Hoare triple {1086#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:02,007 INFO L263 TraceCheckUtils]: 21: Hoare triple {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {1086#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:02,007 INFO L280 TraceCheckUtils]: 22: Hoare triple {1086#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:02,008 INFO L280 TraceCheckUtils]: 23: Hoare triple {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:02,009 INFO L280 TraceCheckUtils]: 24: Hoare triple {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:02,010 INFO L280 TraceCheckUtils]: 25: Hoare triple {1094#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1103#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:02,010 INFO L280 TraceCheckUtils]: 26: Hoare triple {1103#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {1103#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:02,011 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {1103#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {1087#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #69#return; {1101#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-10 15:06:02,012 INFO L280 TraceCheckUtils]: 28: Hoare triple {1101#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {1102#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-10 15:06:02,013 INFO L280 TraceCheckUtils]: 29: Hoare triple {1102#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} assume true; {1102#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-10 15:06:02,014 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {1102#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} {1069#(and (= 0 ~elem~0.offset) (<= 1 ~guard_malloc_counter~0.offset))} #73#return; {1081#(and (= 0 ~elem~0.offset) (<= 2 |main_#t~ret33.offset|))} is VALID [2020-07-10 15:06:02,017 INFO L280 TraceCheckUtils]: 31: Hoare triple {1081#(and (= 0 ~elem~0.offset) (<= 2 |main_#t~ret33.offset|))} ~dev2~0.base, ~dev2~0.offset := #t~ret33.base, #t~ret33.offset;havoc #t~ret33.base, #t~ret33.offset; {1082#(and (= 0 ~elem~0.offset) (<= 2 main_~dev2~0.offset))} is VALID [2020-07-10 15:06:02,018 INFO L280 TraceCheckUtils]: 32: Hoare triple {1082#(and (= 0 ~elem~0.offset) (<= 2 main_~dev2~0.offset))} assume (~dev1~0.base != 0 || ~dev1~0.offset != 0) && (~dev2~0.base != 0 || ~dev2~0.offset != 0); {1082#(and (= 0 ~elem~0.offset) (<= 2 main_~dev2~0.offset))} is VALID [2020-07-10 15:06:02,020 INFO L263 TraceCheckUtils]: 33: Hoare triple {1082#(and (= 0 ~elem~0.offset) (<= 2 main_~dev2~0.offset))} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {1083#(and (= 0 ~elem~0.offset) (<= 2 |list_add_#in~new.offset|))} is VALID [2020-07-10 15:06:02,021 INFO L280 TraceCheckUtils]: 34: Hoare triple {1083#(and (= 0 ~elem~0.offset) (<= 2 |list_add_#in~new.offset|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1084#(and (= 0 ~elem~0.offset) (not (= 0 list_add_~new.offset)))} is VALID [2020-07-10 15:06:02,021 INFO L280 TraceCheckUtils]: 35: Hoare triple {1084#(and (= 0 ~elem~0.offset) (not (= 0 list_add_~new.offset)))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {1053#false} is VALID [2020-07-10 15:06:02,022 INFO L263 TraceCheckUtils]: 36: Hoare triple {1053#false} call __blast_assert(); {1053#false} is VALID [2020-07-10 15:06:02,022 INFO L280 TraceCheckUtils]: 37: Hoare triple {1053#false} assume !false; {1053#false} is VALID [2020-07-10 15:06:02,029 INFO L134 CoverageAnalysis]: Checked inductivity of 11 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2020-07-10 15:06:02,030 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [777230744] [2020-07-10 15:06:02,030 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [412633501] [2020-07-10 15:06:02,030 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-10 15:06:02,201 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:02,203 INFO L264 TraceCheckSpWp]: Trace formula consists of 230 conjuncts, 26 conjunts are in the unsatisfiable core [2020-07-10 15:06:02,228 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:02,235 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-10 15:06:02,822 INFO L263 TraceCheckUtils]: 0: Hoare triple {1052#true} call ULTIMATE.init(); {1052#true} is VALID [2020-07-10 15:06:02,823 INFO L280 TraceCheckUtils]: 1: Hoare triple {1052#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;call ~#head~0.base, ~#head~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {1110#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,824 INFO L280 TraceCheckUtils]: 2: Hoare triple {1110#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} assume true; {1110#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,824 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1110#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} {1052#true} #89#return; {1110#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,825 INFO L263 TraceCheckUtils]: 4: Hoare triple {1110#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} call #t~ret34 := main(); {1110#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,825 INFO L280 TraceCheckUtils]: 5: Hoare triple {1110#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {1110#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,826 INFO L263 TraceCheckUtils]: 6: Hoare triple {1110#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {1126#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,826 INFO L280 TraceCheckUtils]: 7: Hoare triple {1126#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} ~size := #in~size; {1126#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,827 INFO L263 TraceCheckUtils]: 8: Hoare triple {1126#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {1126#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,828 INFO L280 TraceCheckUtils]: 9: Hoare triple {1126#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} ~size := #in~size; {1126#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,829 INFO L280 TraceCheckUtils]: 10: Hoare triple {1126#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} assume ~size > 0; {1126#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,830 INFO L280 TraceCheckUtils]: 11: Hoare triple {1126#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {1142#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,832 INFO L280 TraceCheckUtils]: 12: Hoare triple {1142#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1142#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,833 INFO L280 TraceCheckUtils]: 13: Hoare triple {1142#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} assume true; {1142#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,836 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {1142#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} {1126#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} #69#return; {1142#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,837 INFO L280 TraceCheckUtils]: 15: Hoare triple {1142#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {1142#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,837 INFO L280 TraceCheckUtils]: 16: Hoare triple {1142#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} assume true; {1142#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,838 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {1142#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} {1110#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} #71#return; {1161#(and (<= ~elem~0.offset 0) (<= 1 ~guard_malloc_counter~0.offset))} is VALID [2020-07-10 15:06:02,839 INFO L280 TraceCheckUtils]: 18: Hoare triple {1161#(and (<= ~elem~0.offset 0) (<= 1 ~guard_malloc_counter~0.offset))} ~dev1~0.base, ~dev1~0.offset := #t~ret32.base, #t~ret32.offset;havoc #t~ret32.base, #t~ret32.offset; {1161#(and (<= ~elem~0.offset 0) (<= 1 ~guard_malloc_counter~0.offset))} is VALID [2020-07-10 15:06:02,840 INFO L263 TraceCheckUtils]: 19: Hoare triple {1161#(and (<= ~elem~0.offset 0) (<= 1 ~guard_malloc_counter~0.offset))} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {1126#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,840 INFO L280 TraceCheckUtils]: 20: Hoare triple {1126#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} ~size := #in~size; {1126#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,841 INFO L263 TraceCheckUtils]: 21: Hoare triple {1126#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {1126#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,843 INFO L280 TraceCheckUtils]: 22: Hoare triple {1126#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} ~size := #in~size; {1126#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,843 INFO L280 TraceCheckUtils]: 23: Hoare triple {1126#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} assume ~size > 0; {1126#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,845 INFO L280 TraceCheckUtils]: 24: Hoare triple {1126#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {1142#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,846 INFO L280 TraceCheckUtils]: 25: Hoare triple {1142#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1186#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,846 INFO L280 TraceCheckUtils]: 26: Hoare triple {1186#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|) (<= ~elem~0.offset 0))} assume true; {1186#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,847 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {1186#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|) (<= ~elem~0.offset 0))} {1126#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} #69#return; {1193#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#t~ret30.offset|) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,848 INFO L280 TraceCheckUtils]: 28: Hoare triple {1193#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#t~ret30.offset|) (<= ~elem~0.offset 0))} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {1197#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,848 INFO L280 TraceCheckUtils]: 29: Hoare triple {1197#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|) (<= ~elem~0.offset 0))} assume true; {1197#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,850 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {1197#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|) (<= ~elem~0.offset 0))} {1161#(and (<= ~elem~0.offset 0) (<= 1 ~guard_malloc_counter~0.offset))} #73#return; {1204#(and (<= 2 |main_#t~ret33.offset|) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,851 INFO L280 TraceCheckUtils]: 31: Hoare triple {1204#(and (<= 2 |main_#t~ret33.offset|) (<= ~elem~0.offset 0))} ~dev2~0.base, ~dev2~0.offset := #t~ret33.base, #t~ret33.offset;havoc #t~ret33.base, #t~ret33.offset; {1208#(and (<= 2 main_~dev2~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,851 INFO L280 TraceCheckUtils]: 32: Hoare triple {1208#(and (<= 2 main_~dev2~0.offset) (<= ~elem~0.offset 0))} assume (~dev1~0.base != 0 || ~dev1~0.offset != 0) && (~dev2~0.base != 0 || ~dev2~0.offset != 0); {1208#(and (<= 2 main_~dev2~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,852 INFO L263 TraceCheckUtils]: 33: Hoare triple {1208#(and (<= 2 main_~dev2~0.offset) (<= ~elem~0.offset 0))} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {1215#(and (<= 2 |list_add_#in~new.offset|) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,853 INFO L280 TraceCheckUtils]: 34: Hoare triple {1215#(and (<= 2 |list_add_#in~new.offset|) (<= ~elem~0.offset 0))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1219#(and (<= 2 list_add_~new.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:02,854 INFO L280 TraceCheckUtils]: 35: Hoare triple {1219#(and (<= 2 list_add_~new.offset) (<= ~elem~0.offset 0))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {1053#false} is VALID [2020-07-10 15:06:02,854 INFO L263 TraceCheckUtils]: 36: Hoare triple {1053#false} call __blast_assert(); {1053#false} is VALID [2020-07-10 15:06:02,855 INFO L280 TraceCheckUtils]: 37: Hoare triple {1053#false} assume !false; {1053#false} is VALID [2020-07-10 15:06:02,859 INFO L134 CoverageAnalysis]: Checked inductivity of 11 backedges. 5 proven. 0 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2020-07-10 15:06:02,860 INFO L220 FreeRefinementEngine]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2020-07-10 15:06:02,860 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [13] imperfect sequences [14] total 26 [2020-07-10 15:06:02,860 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [801719613] [2020-07-10 15:06:02,861 INFO L78 Accepts]: Start accepts. Automaton has 13 states. Word has length 38 [2020-07-10 15:06:02,861 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-10 15:06:02,861 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 13 states. [2020-07-10 15:06:02,915 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 33 edges. 33 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:06:02,915 INFO L459 AbstractCegarLoop]: Interpolant automaton has 13 states [2020-07-10 15:06:02,916 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-10 15:06:02,916 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2020-07-10 15:06:02,917 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=74, Invalid=576, Unknown=0, NotChecked=0, Total=650 [2020-07-10 15:06:02,917 INFO L87 Difference]: Start difference. First operand 40 states and 45 transitions. Second operand 13 states. [2020-07-10 15:06:04,816 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:04,816 INFO L93 Difference]: Finished difference Result 73 states and 85 transitions. [2020-07-10 15:06:04,816 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2020-07-10 15:06:04,816 INFO L78 Accepts]: Start accepts. Automaton has 13 states. Word has length 38 [2020-07-10 15:06:04,817 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-10 15:06:04,817 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2020-07-10 15:06:04,821 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 85 transitions. [2020-07-10 15:06:04,821 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2020-07-10 15:06:04,824 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 85 transitions. [2020-07-10 15:06:04,825 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 14 states and 85 transitions. [2020-07-10 15:06:04,957 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 85 edges. 85 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:06:04,961 INFO L225 Difference]: With dead ends: 73 [2020-07-10 15:06:04,961 INFO L226 Difference]: Without dead ends: 70 [2020-07-10 15:06:04,962 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 71 GetRequests, 37 SyntacticMatches, 0 SemanticMatches, 34 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 175 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=169, Invalid=1091, Unknown=0, NotChecked=0, Total=1260 [2020-07-10 15:06:04,963 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 70 states. [2020-07-10 15:06:05,069 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 70 to 60. [2020-07-10 15:06:05,070 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-10 15:06:05,070 INFO L82 GeneralOperation]: Start isEquivalent. First operand 70 states. Second operand 60 states. [2020-07-10 15:06:05,070 INFO L74 IsIncluded]: Start isIncluded. First operand 70 states. Second operand 60 states. [2020-07-10 15:06:05,070 INFO L87 Difference]: Start difference. First operand 70 states. Second operand 60 states. [2020-07-10 15:06:05,076 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:05,076 INFO L93 Difference]: Finished difference Result 70 states and 82 transitions. [2020-07-10 15:06:05,076 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 82 transitions. [2020-07-10 15:06:05,077 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:05,078 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:05,078 INFO L74 IsIncluded]: Start isIncluded. First operand 60 states. Second operand 70 states. [2020-07-10 15:06:05,078 INFO L87 Difference]: Start difference. First operand 60 states. Second operand 70 states. [2020-07-10 15:06:05,082 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:05,083 INFO L93 Difference]: Finished difference Result 70 states and 82 transitions. [2020-07-10 15:06:05,083 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 82 transitions. [2020-07-10 15:06:05,084 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:05,084 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:05,085 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-10 15:06:05,085 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-10 15:06:05,085 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 60 states. [2020-07-10 15:06:05,088 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 60 states to 60 states and 72 transitions. [2020-07-10 15:06:05,089 INFO L78 Accepts]: Start accepts. Automaton has 60 states and 72 transitions. Word has length 38 [2020-07-10 15:06:05,089 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-10 15:06:05,089 INFO L479 AbstractCegarLoop]: Abstraction has 60 states and 72 transitions. [2020-07-10 15:06:05,089 INFO L480 AbstractCegarLoop]: Interpolant automaton has 13 states. [2020-07-10 15:06:05,089 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 72 transitions. [2020-07-10 15:06:05,091 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 46 [2020-07-10 15:06:05,091 INFO L414 BasicCegarLoop]: Found error trace [2020-07-10 15:06:05,091 INFO L422 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-10 15:06:05,304 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable3,3 z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-10 15:06:05,305 INFO L427 AbstractCegarLoop]: === Iteration 5 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-10 15:06:05,306 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-10 15:06:05,306 INFO L82 PathProgramCache]: Analyzing trace with hash 1321471087, now seen corresponding path program 1 times [2020-07-10 15:06:05,306 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-10 15:06:05,307 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [346638582] [2020-07-10 15:06:05,307 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-10 15:06:05,339 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:05,499 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:05,511 INFO L280 TraceCheckUtils]: 0: Hoare triple {1618#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;call ~#head~0.base, ~#head~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {1578#true} is VALID [2020-07-10 15:06:05,512 INFO L280 TraceCheckUtils]: 1: Hoare triple {1578#true} assume true; {1578#true} is VALID [2020-07-10 15:06:05,512 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {1578#true} {1578#true} #89#return; {1578#true} is VALID [2020-07-10 15:06:05,537 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:05,585 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:05,608 INFO L280 TraceCheckUtils]: 0: Hoare triple {1619#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {1578#true} is VALID [2020-07-10 15:06:05,608 INFO L280 TraceCheckUtils]: 1: Hoare triple {1578#true} assume ~size > 0; {1578#true} is VALID [2020-07-10 15:06:05,608 INFO L280 TraceCheckUtils]: 2: Hoare triple {1578#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {1578#true} is VALID [2020-07-10 15:06:05,609 INFO L280 TraceCheckUtils]: 3: Hoare triple {1578#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1628#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:05,610 INFO L280 TraceCheckUtils]: 4: Hoare triple {1628#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {1628#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:05,611 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {1628#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} {1578#true} #69#return; {1626#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:05,611 INFO L280 TraceCheckUtils]: 0: Hoare triple {1619#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {1578#true} is VALID [2020-07-10 15:06:05,612 INFO L263 TraceCheckUtils]: 1: Hoare triple {1578#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {1619#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:05,612 INFO L280 TraceCheckUtils]: 2: Hoare triple {1619#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {1578#true} is VALID [2020-07-10 15:06:05,612 INFO L280 TraceCheckUtils]: 3: Hoare triple {1578#true} assume ~size > 0; {1578#true} is VALID [2020-07-10 15:06:05,613 INFO L280 TraceCheckUtils]: 4: Hoare triple {1578#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {1578#true} is VALID [2020-07-10 15:06:05,613 INFO L280 TraceCheckUtils]: 5: Hoare triple {1578#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1628#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:05,614 INFO L280 TraceCheckUtils]: 6: Hoare triple {1628#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {1628#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:05,616 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {1628#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} {1578#true} #69#return; {1626#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:05,616 INFO L280 TraceCheckUtils]: 8: Hoare triple {1626#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {1627#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:05,617 INFO L280 TraceCheckUtils]: 9: Hoare triple {1627#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {1627#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:05,618 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {1627#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} {1578#true} #71#return; {1594#(<= |main_#t~ret32.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:05,622 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:05,722 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:05,807 INFO L280 TraceCheckUtils]: 0: Hoare triple {1619#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {1629#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:05,808 INFO L280 TraceCheckUtils]: 1: Hoare triple {1629#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {1629#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:05,809 INFO L280 TraceCheckUtils]: 2: Hoare triple {1629#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {1638#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:05,810 INFO L280 TraceCheckUtils]: 3: Hoare triple {1638#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1639#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:05,811 INFO L280 TraceCheckUtils]: 4: Hoare triple {1639#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {1639#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:05,812 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {1639#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {1629#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #69#return; {1636#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-10 15:06:05,813 INFO L280 TraceCheckUtils]: 0: Hoare triple {1619#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {1629#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:05,814 INFO L263 TraceCheckUtils]: 1: Hoare triple {1629#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {1619#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:05,815 INFO L280 TraceCheckUtils]: 2: Hoare triple {1619#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {1629#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:05,816 INFO L280 TraceCheckUtils]: 3: Hoare triple {1629#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {1629#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:05,817 INFO L280 TraceCheckUtils]: 4: Hoare triple {1629#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {1638#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:05,818 INFO L280 TraceCheckUtils]: 5: Hoare triple {1638#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1639#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:05,819 INFO L280 TraceCheckUtils]: 6: Hoare triple {1639#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {1639#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:05,821 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {1639#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {1629#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #69#return; {1636#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-10 15:06:05,822 INFO L280 TraceCheckUtils]: 8: Hoare triple {1636#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {1637#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-10 15:06:05,823 INFO L280 TraceCheckUtils]: 9: Hoare triple {1637#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} assume true; {1637#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-10 15:06:05,825 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {1637#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} {1595#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} #73#return; {1607#(<= (+ main_~dev1~0.offset 1) |main_#t~ret33.offset|)} is VALID [2020-07-10 15:06:05,863 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:05,938 INFO L280 TraceCheckUtils]: 0: Hoare triple {1640#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1641#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-10 15:06:05,939 INFO L280 TraceCheckUtils]: 1: Hoare triple {1641#(= |list_add_#in~new.offset| list_add_~new.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {1641#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-10 15:06:05,940 INFO L280 TraceCheckUtils]: 2: Hoare triple {1641#(= |list_add_#in~new.offset| list_add_~new.offset)} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {1641#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-10 15:06:05,941 INFO L280 TraceCheckUtils]: 3: Hoare triple {1641#(= |list_add_#in~new.offset| list_add_~new.offset)} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {1642#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-10 15:06:05,942 INFO L280 TraceCheckUtils]: 4: Hoare triple {1642#(= ~elem~0.offset |list_add_#in~new.offset|)} assume true; {1642#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-10 15:06:05,944 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {1642#(= ~elem~0.offset |list_add_#in~new.offset|)} {1608#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #75#return; {1615#(<= (+ main_~dev1~0.offset 1) ~elem~0.offset)} is VALID [2020-07-10 15:06:05,946 INFO L263 TraceCheckUtils]: 0: Hoare triple {1578#true} call ULTIMATE.init(); {1618#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:05,946 INFO L280 TraceCheckUtils]: 1: Hoare triple {1618#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;call ~#head~0.base, ~#head~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {1578#true} is VALID [2020-07-10 15:06:05,946 INFO L280 TraceCheckUtils]: 2: Hoare triple {1578#true} assume true; {1578#true} is VALID [2020-07-10 15:06:05,946 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1578#true} {1578#true} #89#return; {1578#true} is VALID [2020-07-10 15:06:05,947 INFO L263 TraceCheckUtils]: 4: Hoare triple {1578#true} call #t~ret34 := main(); {1578#true} is VALID [2020-07-10 15:06:05,947 INFO L280 TraceCheckUtils]: 5: Hoare triple {1578#true} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {1578#true} is VALID [2020-07-10 15:06:05,949 INFO L263 TraceCheckUtils]: 6: Hoare triple {1578#true} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {1619#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:05,949 INFO L280 TraceCheckUtils]: 7: Hoare triple {1619#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {1578#true} is VALID [2020-07-10 15:06:05,950 INFO L263 TraceCheckUtils]: 8: Hoare triple {1578#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {1619#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:05,950 INFO L280 TraceCheckUtils]: 9: Hoare triple {1619#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {1578#true} is VALID [2020-07-10 15:06:05,951 INFO L280 TraceCheckUtils]: 10: Hoare triple {1578#true} assume ~size > 0; {1578#true} is VALID [2020-07-10 15:06:05,951 INFO L280 TraceCheckUtils]: 11: Hoare triple {1578#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {1578#true} is VALID [2020-07-10 15:06:05,954 INFO L280 TraceCheckUtils]: 12: Hoare triple {1578#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1628#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:05,954 INFO L280 TraceCheckUtils]: 13: Hoare triple {1628#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {1628#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:05,956 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {1628#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} {1578#true} #69#return; {1626#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:05,956 INFO L280 TraceCheckUtils]: 15: Hoare triple {1626#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {1627#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:05,957 INFO L280 TraceCheckUtils]: 16: Hoare triple {1627#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {1627#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:05,958 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {1627#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} {1578#true} #71#return; {1594#(<= |main_#t~ret32.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:05,959 INFO L280 TraceCheckUtils]: 18: Hoare triple {1594#(<= |main_#t~ret32.offset| ~guard_malloc_counter~0.offset)} ~dev1~0.base, ~dev1~0.offset := #t~ret32.base, #t~ret32.offset;havoc #t~ret32.base, #t~ret32.offset; {1595#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:05,961 INFO L263 TraceCheckUtils]: 19: Hoare triple {1595#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {1619#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:05,962 INFO L280 TraceCheckUtils]: 20: Hoare triple {1619#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {1629#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:05,963 INFO L263 TraceCheckUtils]: 21: Hoare triple {1629#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {1619#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:05,964 INFO L280 TraceCheckUtils]: 22: Hoare triple {1619#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {1629#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:05,965 INFO L280 TraceCheckUtils]: 23: Hoare triple {1629#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {1629#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:05,979 INFO L280 TraceCheckUtils]: 24: Hoare triple {1629#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {1638#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:05,980 INFO L280 TraceCheckUtils]: 25: Hoare triple {1638#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1639#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:05,981 INFO L280 TraceCheckUtils]: 26: Hoare triple {1639#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {1639#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:05,983 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {1639#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {1629#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #69#return; {1636#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-10 15:06:05,984 INFO L280 TraceCheckUtils]: 28: Hoare triple {1636#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {1637#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-10 15:06:05,985 INFO L280 TraceCheckUtils]: 29: Hoare triple {1637#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} assume true; {1637#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-10 15:06:05,987 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {1637#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} {1595#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} #73#return; {1607#(<= (+ main_~dev1~0.offset 1) |main_#t~ret33.offset|)} is VALID [2020-07-10 15:06:05,988 INFO L280 TraceCheckUtils]: 31: Hoare triple {1607#(<= (+ main_~dev1~0.offset 1) |main_#t~ret33.offset|)} ~dev2~0.base, ~dev2~0.offset := #t~ret33.base, #t~ret33.offset;havoc #t~ret33.base, #t~ret33.offset; {1608#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-10 15:06:05,989 INFO L280 TraceCheckUtils]: 32: Hoare triple {1608#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} assume (~dev1~0.base != 0 || ~dev1~0.offset != 0) && (~dev2~0.base != 0 || ~dev2~0.offset != 0); {1608#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-10 15:06:05,991 INFO L263 TraceCheckUtils]: 33: Hoare triple {1608#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {1640#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:05,992 INFO L280 TraceCheckUtils]: 34: Hoare triple {1640#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1641#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-10 15:06:05,992 INFO L280 TraceCheckUtils]: 35: Hoare triple {1641#(= |list_add_#in~new.offset| list_add_~new.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {1641#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-10 15:06:05,993 INFO L280 TraceCheckUtils]: 36: Hoare triple {1641#(= |list_add_#in~new.offset| list_add_~new.offset)} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {1641#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-10 15:06:05,994 INFO L280 TraceCheckUtils]: 37: Hoare triple {1641#(= |list_add_#in~new.offset| list_add_~new.offset)} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {1642#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-10 15:06:05,995 INFO L280 TraceCheckUtils]: 38: Hoare triple {1642#(= ~elem~0.offset |list_add_#in~new.offset|)} assume true; {1642#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-10 15:06:05,997 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {1642#(= ~elem~0.offset |list_add_#in~new.offset|)} {1608#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #75#return; {1615#(<= (+ main_~dev1~0.offset 1) ~elem~0.offset)} is VALID [2020-07-10 15:06:05,999 INFO L263 TraceCheckUtils]: 40: Hoare triple {1615#(<= (+ main_~dev1~0.offset 1) ~elem~0.offset)} call list_add(~dev1~0.base, ~dev1~0.offset, ~#head~0.base, ~#head~0.offset); {1616#(<= (+ |list_add_#in~new.offset| 1) ~elem~0.offset)} is VALID [2020-07-10 15:06:06,000 INFO L280 TraceCheckUtils]: 41: Hoare triple {1616#(<= (+ |list_add_#in~new.offset| 1) ~elem~0.offset)} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1617#(not (= ~elem~0.offset list_add_~new.offset))} is VALID [2020-07-10 15:06:06,000 INFO L280 TraceCheckUtils]: 42: Hoare triple {1617#(not (= ~elem~0.offset list_add_~new.offset))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {1579#false} is VALID [2020-07-10 15:06:06,001 INFO L263 TraceCheckUtils]: 43: Hoare triple {1579#false} call __blast_assert(); {1579#false} is VALID [2020-07-10 15:06:06,001 INFO L280 TraceCheckUtils]: 44: Hoare triple {1579#false} assume !false; {1579#false} is VALID [2020-07-10 15:06:06,004 INFO L134 CoverageAnalysis]: Checked inductivity of 13 backedges. 4 proven. 7 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2020-07-10 15:06:06,005 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [346638582] [2020-07-10 15:06:06,005 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [222283832] [2020-07-10 15:06:06,005 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-10 15:06:06,201 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:06,203 INFO L264 TraceCheckSpWp]: Trace formula consists of 264 conjuncts, 23 conjunts are in the unsatisfiable core [2020-07-10 15:06:06,219 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:06,221 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-10 15:06:06,611 INFO L263 TraceCheckUtils]: 0: Hoare triple {1578#true} call ULTIMATE.init(); {1578#true} is VALID [2020-07-10 15:06:06,611 INFO L280 TraceCheckUtils]: 1: Hoare triple {1578#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;call ~#head~0.base, ~#head~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {1578#true} is VALID [2020-07-10 15:06:06,611 INFO L280 TraceCheckUtils]: 2: Hoare triple {1578#true} assume true; {1578#true} is VALID [2020-07-10 15:06:06,612 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1578#true} {1578#true} #89#return; {1578#true} is VALID [2020-07-10 15:06:06,612 INFO L263 TraceCheckUtils]: 4: Hoare triple {1578#true} call #t~ret34 := main(); {1578#true} is VALID [2020-07-10 15:06:06,612 INFO L280 TraceCheckUtils]: 5: Hoare triple {1578#true} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {1578#true} is VALID [2020-07-10 15:06:06,615 INFO L263 TraceCheckUtils]: 6: Hoare triple {1578#true} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {1578#true} is VALID [2020-07-10 15:06:06,615 INFO L280 TraceCheckUtils]: 7: Hoare triple {1578#true} ~size := #in~size; {1578#true} is VALID [2020-07-10 15:06:06,615 INFO L263 TraceCheckUtils]: 8: Hoare triple {1578#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {1578#true} is VALID [2020-07-10 15:06:06,615 INFO L280 TraceCheckUtils]: 9: Hoare triple {1578#true} ~size := #in~size; {1578#true} is VALID [2020-07-10 15:06:06,615 INFO L280 TraceCheckUtils]: 10: Hoare triple {1578#true} assume ~size > 0; {1578#true} is VALID [2020-07-10 15:06:06,616 INFO L280 TraceCheckUtils]: 11: Hoare triple {1578#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {1578#true} is VALID [2020-07-10 15:06:06,620 INFO L280 TraceCheckUtils]: 12: Hoare triple {1578#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1628#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:06,621 INFO L280 TraceCheckUtils]: 13: Hoare triple {1628#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {1628#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:06,624 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {1628#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} {1578#true} #69#return; {1626#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:06,625 INFO L280 TraceCheckUtils]: 15: Hoare triple {1626#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {1627#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:06,625 INFO L280 TraceCheckUtils]: 16: Hoare triple {1627#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {1627#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:06,626 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {1627#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} {1578#true} #71#return; {1594#(<= |main_#t~ret32.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:06,627 INFO L280 TraceCheckUtils]: 18: Hoare triple {1594#(<= |main_#t~ret32.offset| ~guard_malloc_counter~0.offset)} ~dev1~0.base, ~dev1~0.offset := #t~ret32.base, #t~ret32.offset;havoc #t~ret32.base, #t~ret32.offset; {1595#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:06,628 INFO L263 TraceCheckUtils]: 19: Hoare triple {1595#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {1703#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:06,628 INFO L280 TraceCheckUtils]: 20: Hoare triple {1703#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} ~size := #in~size; {1703#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:06,629 INFO L263 TraceCheckUtils]: 21: Hoare triple {1703#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {1703#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:06,630 INFO L280 TraceCheckUtils]: 22: Hoare triple {1703#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} ~size := #in~size; {1703#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:06,630 INFO L280 TraceCheckUtils]: 23: Hoare triple {1703#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} assume ~size > 0; {1703#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:06,631 INFO L280 TraceCheckUtils]: 24: Hoare triple {1703#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {1638#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:06,632 INFO L280 TraceCheckUtils]: 25: Hoare triple {1638#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1722#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|))} is VALID [2020-07-10 15:06:06,633 INFO L280 TraceCheckUtils]: 26: Hoare triple {1722#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|))} assume true; {1722#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|))} is VALID [2020-07-10 15:06:06,635 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {1722#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|))} {1703#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} #69#return; {1729#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#t~ret30.offset|))} is VALID [2020-07-10 15:06:06,636 INFO L280 TraceCheckUtils]: 28: Hoare triple {1729#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#t~ret30.offset|))} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {1733#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|))} is VALID [2020-07-10 15:06:06,636 INFO L280 TraceCheckUtils]: 29: Hoare triple {1733#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|))} assume true; {1733#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|))} is VALID [2020-07-10 15:06:06,645 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {1733#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|))} {1595#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} #73#return; {1607#(<= (+ main_~dev1~0.offset 1) |main_#t~ret33.offset|)} is VALID [2020-07-10 15:06:06,646 INFO L280 TraceCheckUtils]: 31: Hoare triple {1607#(<= (+ main_~dev1~0.offset 1) |main_#t~ret33.offset|)} ~dev2~0.base, ~dev2~0.offset := #t~ret33.base, #t~ret33.offset;havoc #t~ret33.base, #t~ret33.offset; {1608#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-10 15:06:06,646 INFO L280 TraceCheckUtils]: 32: Hoare triple {1608#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} assume (~dev1~0.base != 0 || ~dev1~0.offset != 0) && (~dev2~0.base != 0 || ~dev2~0.offset != 0); {1608#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-10 15:06:06,646 INFO L263 TraceCheckUtils]: 33: Hoare triple {1608#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {1578#true} is VALID [2020-07-10 15:06:06,647 INFO L280 TraceCheckUtils]: 34: Hoare triple {1578#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1752#(<= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-10 15:06:06,648 INFO L280 TraceCheckUtils]: 35: Hoare triple {1752#(<= |list_add_#in~new.offset| list_add_~new.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {1752#(<= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-10 15:06:06,648 INFO L280 TraceCheckUtils]: 36: Hoare triple {1752#(<= |list_add_#in~new.offset| list_add_~new.offset)} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {1752#(<= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-10 15:06:06,649 INFO L280 TraceCheckUtils]: 37: Hoare triple {1752#(<= |list_add_#in~new.offset| list_add_~new.offset)} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {1762#(<= |list_add_#in~new.offset| ~elem~0.offset)} is VALID [2020-07-10 15:06:06,649 INFO L280 TraceCheckUtils]: 38: Hoare triple {1762#(<= |list_add_#in~new.offset| ~elem~0.offset)} assume true; {1762#(<= |list_add_#in~new.offset| ~elem~0.offset)} is VALID [2020-07-10 15:06:06,650 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {1762#(<= |list_add_#in~new.offset| ~elem~0.offset)} {1608#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #75#return; {1615#(<= (+ main_~dev1~0.offset 1) ~elem~0.offset)} is VALID [2020-07-10 15:06:06,651 INFO L263 TraceCheckUtils]: 40: Hoare triple {1615#(<= (+ main_~dev1~0.offset 1) ~elem~0.offset)} call list_add(~dev1~0.base, ~dev1~0.offset, ~#head~0.base, ~#head~0.offset); {1616#(<= (+ |list_add_#in~new.offset| 1) ~elem~0.offset)} is VALID [2020-07-10 15:06:06,652 INFO L280 TraceCheckUtils]: 41: Hoare triple {1616#(<= (+ |list_add_#in~new.offset| 1) ~elem~0.offset)} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1775#(<= (+ list_add_~new.offset 1) ~elem~0.offset)} is VALID [2020-07-10 15:06:06,652 INFO L280 TraceCheckUtils]: 42: Hoare triple {1775#(<= (+ list_add_~new.offset 1) ~elem~0.offset)} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {1579#false} is VALID [2020-07-10 15:06:06,652 INFO L263 TraceCheckUtils]: 43: Hoare triple {1579#false} call __blast_assert(); {1579#false} is VALID [2020-07-10 15:06:06,653 INFO L280 TraceCheckUtils]: 44: Hoare triple {1579#false} assume !false; {1579#false} is VALID [2020-07-10 15:06:06,655 INFO L134 CoverageAnalysis]: Checked inductivity of 13 backedges. 7 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2020-07-10 15:06:06,656 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-10 15:06:06,656 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [22, 19] total 29 [2020-07-10 15:06:06,656 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [20917678] [2020-07-10 15:06:06,657 INFO L78 Accepts]: Start accepts. Automaton has 29 states. Word has length 45 [2020-07-10 15:06:06,660 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-10 15:06:06,661 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 29 states. [2020-07-10 15:06:06,757 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 72 edges. 72 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:06:06,758 INFO L459 AbstractCegarLoop]: Interpolant automaton has 29 states [2020-07-10 15:06:06,758 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-10 15:06:06,758 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 29 interpolants. [2020-07-10 15:06:06,759 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=76, Invalid=736, Unknown=0, NotChecked=0, Total=812 [2020-07-10 15:06:06,759 INFO L87 Difference]: Start difference. First operand 60 states and 72 transitions. Second operand 29 states. [2020-07-10 15:06:12,815 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:12,816 INFO L93 Difference]: Finished difference Result 80 states and 99 transitions. [2020-07-10 15:06:12,817 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2020-07-10 15:06:12,817 INFO L78 Accepts]: Start accepts. Automaton has 29 states. Word has length 45 [2020-07-10 15:06:12,817 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-10 15:06:12,817 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 29 states. [2020-07-10 15:06:12,823 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 19 states to 19 states and 77 transitions. [2020-07-10 15:06:12,823 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 29 states. [2020-07-10 15:06:12,826 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 19 states to 19 states and 77 transitions. [2020-07-10 15:06:12,827 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 19 states and 77 transitions. [2020-07-10 15:06:12,997 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 77 edges. 77 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:06:13,001 INFO L225 Difference]: With dead ends: 80 [2020-07-10 15:06:13,001 INFO L226 Difference]: Without dead ends: 76 [2020-07-10 15:06:13,003 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 88 GetRequests, 46 SyntacticMatches, 0 SemanticMatches, 42 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 208 ImplicationChecksByTransitivity, 1.1s TimeCoverageRelationStatistics Valid=210, Invalid=1682, Unknown=0, NotChecked=0, Total=1892 [2020-07-10 15:06:13,004 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 76 states. [2020-07-10 15:06:13,159 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 76 to 72. [2020-07-10 15:06:13,159 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-10 15:06:13,159 INFO L82 GeneralOperation]: Start isEquivalent. First operand 76 states. Second operand 72 states. [2020-07-10 15:06:13,159 INFO L74 IsIncluded]: Start isIncluded. First operand 76 states. Second operand 72 states. [2020-07-10 15:06:13,160 INFO L87 Difference]: Start difference. First operand 76 states. Second operand 72 states. [2020-07-10 15:06:13,164 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:13,164 INFO L93 Difference]: Finished difference Result 76 states and 90 transitions. [2020-07-10 15:06:13,164 INFO L276 IsEmpty]: Start isEmpty. Operand 76 states and 90 transitions. [2020-07-10 15:06:13,165 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:13,165 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:13,165 INFO L74 IsIncluded]: Start isIncluded. First operand 72 states. Second operand 76 states. [2020-07-10 15:06:13,165 INFO L87 Difference]: Start difference. First operand 72 states. Second operand 76 states. [2020-07-10 15:06:13,170 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:13,170 INFO L93 Difference]: Finished difference Result 76 states and 90 transitions. [2020-07-10 15:06:13,170 INFO L276 IsEmpty]: Start isEmpty. Operand 76 states and 90 transitions. [2020-07-10 15:06:13,171 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:13,171 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:13,171 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-10 15:06:13,171 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-10 15:06:13,171 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 72 states. [2020-07-10 15:06:13,175 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 72 states to 72 states and 85 transitions. [2020-07-10 15:06:13,175 INFO L78 Accepts]: Start accepts. Automaton has 72 states and 85 transitions. Word has length 45 [2020-07-10 15:06:13,176 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-10 15:06:13,176 INFO L479 AbstractCegarLoop]: Abstraction has 72 states and 85 transitions. [2020-07-10 15:06:13,176 INFO L480 AbstractCegarLoop]: Interpolant automaton has 29 states. [2020-07-10 15:06:13,176 INFO L276 IsEmpty]: Start isEmpty. Operand 72 states and 85 transitions. [2020-07-10 15:06:13,177 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 46 [2020-07-10 15:06:13,177 INFO L414 BasicCegarLoop]: Found error trace [2020-07-10 15:06:13,177 INFO L422 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-10 15:06:13,391 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable4,4 z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-10 15:06:13,392 INFO L427 AbstractCegarLoop]: === Iteration 6 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-10 15:06:13,392 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-10 15:06:13,393 INFO L82 PathProgramCache]: Analyzing trace with hash 512124461, now seen corresponding path program 1 times [2020-07-10 15:06:13,393 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-10 15:06:13,394 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1103024188] [2020-07-10 15:06:13,394 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-10 15:06:13,409 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:13,566 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:13,586 INFO L280 TraceCheckUtils]: 0: Hoare triple {2217#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;call ~#head~0.base, ~#head~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {2184#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-10 15:06:13,587 INFO L280 TraceCheckUtils]: 1: Hoare triple {2184#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} assume true; {2184#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-10 15:06:13,588 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {2184#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} {2179#true} #89#return; {2184#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-10 15:06:13,609 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:13,682 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:13,744 INFO L280 TraceCheckUtils]: 0: Hoare triple {2218#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {2219#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:13,745 INFO L280 TraceCheckUtils]: 1: Hoare triple {2219#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {2219#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:13,746 INFO L280 TraceCheckUtils]: 2: Hoare triple {2219#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {2228#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:13,747 INFO L280 TraceCheckUtils]: 3: Hoare triple {2228#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2229#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:13,748 INFO L280 TraceCheckUtils]: 4: Hoare triple {2229#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {2229#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:13,749 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {2229#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {2219#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #69#return; {2226#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-10 15:06:13,750 INFO L280 TraceCheckUtils]: 0: Hoare triple {2218#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {2219#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:13,751 INFO L263 TraceCheckUtils]: 1: Hoare triple {2219#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {2218#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:13,752 INFO L280 TraceCheckUtils]: 2: Hoare triple {2218#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {2219#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:13,753 INFO L280 TraceCheckUtils]: 3: Hoare triple {2219#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {2219#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:13,754 INFO L280 TraceCheckUtils]: 4: Hoare triple {2219#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {2228#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:13,755 INFO L280 TraceCheckUtils]: 5: Hoare triple {2228#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2229#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:13,755 INFO L280 TraceCheckUtils]: 6: Hoare triple {2229#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {2229#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:13,757 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {2229#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {2219#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #69#return; {2226#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-10 15:06:13,758 INFO L280 TraceCheckUtils]: 8: Hoare triple {2226#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {2227#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-10 15:06:13,758 INFO L280 TraceCheckUtils]: 9: Hoare triple {2227#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} assume true; {2227#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-10 15:06:13,760 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {2227#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} {2184#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} #71#return; {2196#(and (= 0 ~elem~0.offset) (<= 1 |main_#t~ret32.offset|))} is VALID [2020-07-10 15:06:13,763 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:13,772 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:13,776 INFO L280 TraceCheckUtils]: 0: Hoare triple {2218#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {2179#true} is VALID [2020-07-10 15:06:13,776 INFO L280 TraceCheckUtils]: 1: Hoare triple {2179#true} assume ~size > 0; {2179#true} is VALID [2020-07-10 15:06:13,777 INFO L280 TraceCheckUtils]: 2: Hoare triple {2179#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {2179#true} is VALID [2020-07-10 15:06:13,777 INFO L280 TraceCheckUtils]: 3: Hoare triple {2179#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2179#true} is VALID [2020-07-10 15:06:13,777 INFO L280 TraceCheckUtils]: 4: Hoare triple {2179#true} assume true; {2179#true} is VALID [2020-07-10 15:06:13,777 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {2179#true} {2179#true} #69#return; {2179#true} is VALID [2020-07-10 15:06:13,778 INFO L280 TraceCheckUtils]: 0: Hoare triple {2218#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {2179#true} is VALID [2020-07-10 15:06:13,778 INFO L263 TraceCheckUtils]: 1: Hoare triple {2179#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {2218#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:13,779 INFO L280 TraceCheckUtils]: 2: Hoare triple {2218#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {2179#true} is VALID [2020-07-10 15:06:13,779 INFO L280 TraceCheckUtils]: 3: Hoare triple {2179#true} assume ~size > 0; {2179#true} is VALID [2020-07-10 15:06:13,779 INFO L280 TraceCheckUtils]: 4: Hoare triple {2179#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {2179#true} is VALID [2020-07-10 15:06:13,779 INFO L280 TraceCheckUtils]: 5: Hoare triple {2179#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2179#true} is VALID [2020-07-10 15:06:13,780 INFO L280 TraceCheckUtils]: 6: Hoare triple {2179#true} assume true; {2179#true} is VALID [2020-07-10 15:06:13,780 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {2179#true} {2179#true} #69#return; {2179#true} is VALID [2020-07-10 15:06:13,780 INFO L280 TraceCheckUtils]: 8: Hoare triple {2179#true} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {2179#true} is VALID [2020-07-10 15:06:13,780 INFO L280 TraceCheckUtils]: 9: Hoare triple {2179#true} assume true; {2179#true} is VALID [2020-07-10 15:06:13,781 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {2179#true} {2197#(and (<= 1 main_~dev1~0.offset) (= 0 ~elem~0.offset))} #73#return; {2197#(and (<= 1 main_~dev1~0.offset) (= 0 ~elem~0.offset))} is VALID [2020-07-10 15:06:13,803 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:13,826 INFO L280 TraceCheckUtils]: 0: Hoare triple {2236#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2237#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-10 15:06:13,826 INFO L280 TraceCheckUtils]: 1: Hoare triple {2237#(= |old(~elem~0.offset)| ~elem~0.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2237#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-10 15:06:13,827 INFO L280 TraceCheckUtils]: 2: Hoare triple {2237#(= |old(~elem~0.offset)| ~elem~0.offset)} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {2237#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-10 15:06:13,827 INFO L280 TraceCheckUtils]: 3: Hoare triple {2237#(= |old(~elem~0.offset)| ~elem~0.offset)} assume !(0 != #t~nondet31);havoc #t~nondet31; {2237#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-10 15:06:13,828 INFO L280 TraceCheckUtils]: 4: Hoare triple {2237#(= |old(~elem~0.offset)| ~elem~0.offset)} assume true; {2237#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-10 15:06:13,829 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {2237#(= |old(~elem~0.offset)| ~elem~0.offset)} {2197#(and (<= 1 main_~dev1~0.offset) (= 0 ~elem~0.offset))} #75#return; {2197#(and (<= 1 main_~dev1~0.offset) (= 0 ~elem~0.offset))} is VALID [2020-07-10 15:06:13,831 INFO L263 TraceCheckUtils]: 0: Hoare triple {2179#true} call ULTIMATE.init(); {2217#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:13,832 INFO L280 TraceCheckUtils]: 1: Hoare triple {2217#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;call ~#head~0.base, ~#head~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {2184#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-10 15:06:13,832 INFO L280 TraceCheckUtils]: 2: Hoare triple {2184#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} assume true; {2184#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-10 15:06:13,833 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2184#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} {2179#true} #89#return; {2184#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-10 15:06:13,834 INFO L263 TraceCheckUtils]: 4: Hoare triple {2184#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} call #t~ret34 := main(); {2184#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-10 15:06:13,834 INFO L280 TraceCheckUtils]: 5: Hoare triple {2184#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {2184#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2020-07-10 15:06:13,835 INFO L263 TraceCheckUtils]: 6: Hoare triple {2184#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {2218#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:13,836 INFO L280 TraceCheckUtils]: 7: Hoare triple {2218#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {2219#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:13,836 INFO L263 TraceCheckUtils]: 8: Hoare triple {2219#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {2218#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:13,837 INFO L280 TraceCheckUtils]: 9: Hoare triple {2218#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {2219#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:13,838 INFO L280 TraceCheckUtils]: 10: Hoare triple {2219#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {2219#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:13,838 INFO L280 TraceCheckUtils]: 11: Hoare triple {2219#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {2228#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:13,839 INFO L280 TraceCheckUtils]: 12: Hoare triple {2228#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2229#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:13,839 INFO L280 TraceCheckUtils]: 13: Hoare triple {2229#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {2229#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:13,840 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {2229#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {2219#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #69#return; {2226#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-10 15:06:13,840 INFO L280 TraceCheckUtils]: 15: Hoare triple {2226#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {2227#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-10 15:06:13,841 INFO L280 TraceCheckUtils]: 16: Hoare triple {2227#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} assume true; {2227#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-10 15:06:13,842 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {2227#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} {2184#(and (= 0 ~elem~0.offset) (<= 0 ~guard_malloc_counter~0.offset))} #71#return; {2196#(and (= 0 ~elem~0.offset) (<= 1 |main_#t~ret32.offset|))} is VALID [2020-07-10 15:06:13,842 INFO L280 TraceCheckUtils]: 18: Hoare triple {2196#(and (= 0 ~elem~0.offset) (<= 1 |main_#t~ret32.offset|))} ~dev1~0.base, ~dev1~0.offset := #t~ret32.base, #t~ret32.offset;havoc #t~ret32.base, #t~ret32.offset; {2197#(and (<= 1 main_~dev1~0.offset) (= 0 ~elem~0.offset))} is VALID [2020-07-10 15:06:13,847 INFO L263 TraceCheckUtils]: 19: Hoare triple {2197#(and (<= 1 main_~dev1~0.offset) (= 0 ~elem~0.offset))} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {2218#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:13,848 INFO L280 TraceCheckUtils]: 20: Hoare triple {2218#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {2179#true} is VALID [2020-07-10 15:06:13,849 INFO L263 TraceCheckUtils]: 21: Hoare triple {2179#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {2218#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:13,849 INFO L280 TraceCheckUtils]: 22: Hoare triple {2218#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {2179#true} is VALID [2020-07-10 15:06:13,849 INFO L280 TraceCheckUtils]: 23: Hoare triple {2179#true} assume ~size > 0; {2179#true} is VALID [2020-07-10 15:06:13,849 INFO L280 TraceCheckUtils]: 24: Hoare triple {2179#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {2179#true} is VALID [2020-07-10 15:06:13,850 INFO L280 TraceCheckUtils]: 25: Hoare triple {2179#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2179#true} is VALID [2020-07-10 15:06:13,850 INFO L280 TraceCheckUtils]: 26: Hoare triple {2179#true} assume true; {2179#true} is VALID [2020-07-10 15:06:13,850 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {2179#true} {2179#true} #69#return; {2179#true} is VALID [2020-07-10 15:06:13,850 INFO L280 TraceCheckUtils]: 28: Hoare triple {2179#true} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {2179#true} is VALID [2020-07-10 15:06:13,850 INFO L280 TraceCheckUtils]: 29: Hoare triple {2179#true} assume true; {2179#true} is VALID [2020-07-10 15:06:13,852 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {2179#true} {2197#(and (<= 1 main_~dev1~0.offset) (= 0 ~elem~0.offset))} #73#return; {2197#(and (<= 1 main_~dev1~0.offset) (= 0 ~elem~0.offset))} is VALID [2020-07-10 15:06:13,854 INFO L280 TraceCheckUtils]: 31: Hoare triple {2197#(and (<= 1 main_~dev1~0.offset) (= 0 ~elem~0.offset))} ~dev2~0.base, ~dev2~0.offset := #t~ret33.base, #t~ret33.offset;havoc #t~ret33.base, #t~ret33.offset; {2197#(and (<= 1 main_~dev1~0.offset) (= 0 ~elem~0.offset))} is VALID [2020-07-10 15:06:13,861 INFO L280 TraceCheckUtils]: 32: Hoare triple {2197#(and (<= 1 main_~dev1~0.offset) (= 0 ~elem~0.offset))} assume (~dev1~0.base != 0 || ~dev1~0.offset != 0) && (~dev2~0.base != 0 || ~dev2~0.offset != 0); {2197#(and (<= 1 main_~dev1~0.offset) (= 0 ~elem~0.offset))} is VALID [2020-07-10 15:06:13,866 INFO L263 TraceCheckUtils]: 33: Hoare triple {2197#(and (<= 1 main_~dev1~0.offset) (= 0 ~elem~0.offset))} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {2236#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:13,868 INFO L280 TraceCheckUtils]: 34: Hoare triple {2236#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2237#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-10 15:06:13,868 INFO L280 TraceCheckUtils]: 35: Hoare triple {2237#(= |old(~elem~0.offset)| ~elem~0.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2237#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-10 15:06:13,869 INFO L280 TraceCheckUtils]: 36: Hoare triple {2237#(= |old(~elem~0.offset)| ~elem~0.offset)} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {2237#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-10 15:06:13,870 INFO L280 TraceCheckUtils]: 37: Hoare triple {2237#(= |old(~elem~0.offset)| ~elem~0.offset)} assume !(0 != #t~nondet31);havoc #t~nondet31; {2237#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-10 15:06:13,870 INFO L280 TraceCheckUtils]: 38: Hoare triple {2237#(= |old(~elem~0.offset)| ~elem~0.offset)} assume true; {2237#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-10 15:06:13,872 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {2237#(= |old(~elem~0.offset)| ~elem~0.offset)} {2197#(and (<= 1 main_~dev1~0.offset) (= 0 ~elem~0.offset))} #75#return; {2197#(and (<= 1 main_~dev1~0.offset) (= 0 ~elem~0.offset))} is VALID [2020-07-10 15:06:13,873 INFO L263 TraceCheckUtils]: 40: Hoare triple {2197#(and (<= 1 main_~dev1~0.offset) (= 0 ~elem~0.offset))} call list_add(~dev1~0.base, ~dev1~0.offset, ~#head~0.base, ~#head~0.offset); {2215#(and (= 0 ~elem~0.offset) (<= 1 |list_add_#in~new.offset|))} is VALID [2020-07-10 15:06:13,874 INFO L280 TraceCheckUtils]: 41: Hoare triple {2215#(and (= 0 ~elem~0.offset) (<= 1 |list_add_#in~new.offset|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2216#(and (= 0 ~elem~0.offset) (not (= 0 list_add_~new.offset)))} is VALID [2020-07-10 15:06:13,874 INFO L280 TraceCheckUtils]: 42: Hoare triple {2216#(and (= 0 ~elem~0.offset) (not (= 0 list_add_~new.offset)))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {2180#false} is VALID [2020-07-10 15:06:13,875 INFO L263 TraceCheckUtils]: 43: Hoare triple {2180#false} call __blast_assert(); {2180#false} is VALID [2020-07-10 15:06:13,875 INFO L280 TraceCheckUtils]: 44: Hoare triple {2180#false} assume !false; {2180#false} is VALID [2020-07-10 15:06:13,878 INFO L134 CoverageAnalysis]: Checked inductivity of 13 backedges. 0 proven. 11 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2020-07-10 15:06:13,878 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1103024188] [2020-07-10 15:06:13,878 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [70614741] [2020-07-10 15:06:13,878 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-10 15:06:13,989 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:13,990 INFO L264 TraceCheckSpWp]: Trace formula consists of 261 conjuncts, 23 conjunts are in the unsatisfiable core [2020-07-10 15:06:14,014 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:14,017 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-10 15:06:14,583 INFO L263 TraceCheckUtils]: 0: Hoare triple {2179#true} call ULTIMATE.init(); {2179#true} is VALID [2020-07-10 15:06:14,584 INFO L280 TraceCheckUtils]: 1: Hoare triple {2179#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;call ~#head~0.base, ~#head~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {2244#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:14,585 INFO L280 TraceCheckUtils]: 2: Hoare triple {2244#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} assume true; {2244#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:14,585 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2244#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} {2179#true} #89#return; {2244#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:14,586 INFO L263 TraceCheckUtils]: 4: Hoare triple {2244#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} call #t~ret34 := main(); {2244#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:14,586 INFO L280 TraceCheckUtils]: 5: Hoare triple {2244#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {2244#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:14,588 INFO L263 TraceCheckUtils]: 6: Hoare triple {2244#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {2260#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:14,589 INFO L280 TraceCheckUtils]: 7: Hoare triple {2260#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} ~size := #in~size; {2260#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:14,590 INFO L263 TraceCheckUtils]: 8: Hoare triple {2260#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {2260#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:14,590 INFO L280 TraceCheckUtils]: 9: Hoare triple {2260#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} ~size := #in~size; {2260#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:14,591 INFO L280 TraceCheckUtils]: 10: Hoare triple {2260#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} assume ~size > 0; {2260#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:14,593 INFO L280 TraceCheckUtils]: 11: Hoare triple {2260#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {2276#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:14,593 INFO L280 TraceCheckUtils]: 12: Hoare triple {2276#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2280#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:14,594 INFO L280 TraceCheckUtils]: 13: Hoare triple {2280#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|) (<= ~elem~0.offset 0))} assume true; {2280#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:14,595 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {2280#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|) (<= ~elem~0.offset 0))} {2260#(and (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} #69#return; {2287#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#t~ret30.offset|) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:14,595 INFO L280 TraceCheckUtils]: 15: Hoare triple {2287#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#t~ret30.offset|) (<= ~elem~0.offset 0))} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {2291#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:14,596 INFO L280 TraceCheckUtils]: 16: Hoare triple {2291#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|) (<= ~elem~0.offset 0))} assume true; {2291#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:14,597 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {2291#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|) (<= ~elem~0.offset 0))} {2244#(and (<= 0 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} #71#return; {2298#(and (<= 1 |main_#t~ret32.offset|) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:14,598 INFO L280 TraceCheckUtils]: 18: Hoare triple {2298#(and (<= 1 |main_#t~ret32.offset|) (<= ~elem~0.offset 0))} ~dev1~0.base, ~dev1~0.offset := #t~ret32.base, #t~ret32.offset;havoc #t~ret32.base, #t~ret32.offset; {2302#(and (<= 1 main_~dev1~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:14,599 INFO L263 TraceCheckUtils]: 19: Hoare triple {2302#(and (<= 1 main_~dev1~0.offset) (<= ~elem~0.offset 0))} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {2306#(<= ~elem~0.offset 0)} is VALID [2020-07-10 15:06:14,599 INFO L280 TraceCheckUtils]: 20: Hoare triple {2306#(<= ~elem~0.offset 0)} ~size := #in~size; {2306#(<= ~elem~0.offset 0)} is VALID [2020-07-10 15:06:14,600 INFO L263 TraceCheckUtils]: 21: Hoare triple {2306#(<= ~elem~0.offset 0)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {2306#(<= ~elem~0.offset 0)} is VALID [2020-07-10 15:06:14,600 INFO L280 TraceCheckUtils]: 22: Hoare triple {2306#(<= ~elem~0.offset 0)} ~size := #in~size; {2306#(<= ~elem~0.offset 0)} is VALID [2020-07-10 15:06:14,600 INFO L280 TraceCheckUtils]: 23: Hoare triple {2306#(<= ~elem~0.offset 0)} assume ~size > 0; {2306#(<= ~elem~0.offset 0)} is VALID [2020-07-10 15:06:14,601 INFO L280 TraceCheckUtils]: 24: Hoare triple {2306#(<= ~elem~0.offset 0)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {2306#(<= ~elem~0.offset 0)} is VALID [2020-07-10 15:06:14,602 INFO L280 TraceCheckUtils]: 25: Hoare triple {2306#(<= ~elem~0.offset 0)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2306#(<= ~elem~0.offset 0)} is VALID [2020-07-10 15:06:14,602 INFO L280 TraceCheckUtils]: 26: Hoare triple {2306#(<= ~elem~0.offset 0)} assume true; {2306#(<= ~elem~0.offset 0)} is VALID [2020-07-10 15:06:14,603 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {2306#(<= ~elem~0.offset 0)} {2306#(<= ~elem~0.offset 0)} #69#return; {2306#(<= ~elem~0.offset 0)} is VALID [2020-07-10 15:06:14,604 INFO L280 TraceCheckUtils]: 28: Hoare triple {2306#(<= ~elem~0.offset 0)} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {2306#(<= ~elem~0.offset 0)} is VALID [2020-07-10 15:06:14,604 INFO L280 TraceCheckUtils]: 29: Hoare triple {2306#(<= ~elem~0.offset 0)} assume true; {2306#(<= ~elem~0.offset 0)} is VALID [2020-07-10 15:06:14,605 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {2306#(<= ~elem~0.offset 0)} {2302#(and (<= 1 main_~dev1~0.offset) (<= ~elem~0.offset 0))} #73#return; {2302#(and (<= 1 main_~dev1~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:14,605 INFO L280 TraceCheckUtils]: 31: Hoare triple {2302#(and (<= 1 main_~dev1~0.offset) (<= ~elem~0.offset 0))} ~dev2~0.base, ~dev2~0.offset := #t~ret33.base, #t~ret33.offset;havoc #t~ret33.base, #t~ret33.offset; {2302#(and (<= 1 main_~dev1~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:14,606 INFO L280 TraceCheckUtils]: 32: Hoare triple {2302#(and (<= 1 main_~dev1~0.offset) (<= ~elem~0.offset 0))} assume (~dev1~0.base != 0 || ~dev1~0.offset != 0) && (~dev2~0.base != 0 || ~dev2~0.offset != 0); {2302#(and (<= 1 main_~dev1~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:14,607 INFO L263 TraceCheckUtils]: 33: Hoare triple {2302#(and (<= 1 main_~dev1~0.offset) (<= ~elem~0.offset 0))} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {2349#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2020-07-10 15:06:14,607 INFO L280 TraceCheckUtils]: 34: Hoare triple {2349#(<= ~elem~0.offset |old(~elem~0.offset)|)} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2349#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2020-07-10 15:06:14,608 INFO L280 TraceCheckUtils]: 35: Hoare triple {2349#(<= ~elem~0.offset |old(~elem~0.offset)|)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2349#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2020-07-10 15:06:14,608 INFO L280 TraceCheckUtils]: 36: Hoare triple {2349#(<= ~elem~0.offset |old(~elem~0.offset)|)} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {2349#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2020-07-10 15:06:14,608 INFO L280 TraceCheckUtils]: 37: Hoare triple {2349#(<= ~elem~0.offset |old(~elem~0.offset)|)} assume !(0 != #t~nondet31);havoc #t~nondet31; {2349#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2020-07-10 15:06:14,609 INFO L280 TraceCheckUtils]: 38: Hoare triple {2349#(<= ~elem~0.offset |old(~elem~0.offset)|)} assume true; {2349#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2020-07-10 15:06:14,610 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {2349#(<= ~elem~0.offset |old(~elem~0.offset)|)} {2302#(and (<= 1 main_~dev1~0.offset) (<= ~elem~0.offset 0))} #75#return; {2302#(and (<= 1 main_~dev1~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:14,611 INFO L263 TraceCheckUtils]: 40: Hoare triple {2302#(and (<= 1 main_~dev1~0.offset) (<= ~elem~0.offset 0))} call list_add(~dev1~0.base, ~dev1~0.offset, ~#head~0.base, ~#head~0.offset); {2371#(and (<= 1 |list_add_#in~new.offset|) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:14,612 INFO L280 TraceCheckUtils]: 41: Hoare triple {2371#(and (<= 1 |list_add_#in~new.offset|) (<= ~elem~0.offset 0))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2375#(and (<= 1 list_add_~new.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:14,612 INFO L280 TraceCheckUtils]: 42: Hoare triple {2375#(and (<= 1 list_add_~new.offset) (<= ~elem~0.offset 0))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {2180#false} is VALID [2020-07-10 15:06:14,612 INFO L263 TraceCheckUtils]: 43: Hoare triple {2180#false} call __blast_assert(); {2180#false} is VALID [2020-07-10 15:06:14,613 INFO L280 TraceCheckUtils]: 44: Hoare triple {2180#false} assume !false; {2180#false} is VALID [2020-07-10 15:06:14,617 INFO L134 CoverageAnalysis]: Checked inductivity of 13 backedges. 0 proven. 13 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2020-07-10 15:06:14,617 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-10 15:06:14,617 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 14] total 28 [2020-07-10 15:06:14,618 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2036228639] [2020-07-10 15:06:14,618 INFO L78 Accepts]: Start accepts. Automaton has 28 states. Word has length 45 [2020-07-10 15:06:14,619 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-10 15:06:14,619 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 28 states. [2020-07-10 15:06:14,735 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 88 edges. 88 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:06:14,735 INFO L459 AbstractCegarLoop]: Interpolant automaton has 28 states [2020-07-10 15:06:14,735 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-10 15:06:14,736 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 28 interpolants. [2020-07-10 15:06:14,737 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=95, Invalid=661, Unknown=0, NotChecked=0, Total=756 [2020-07-10 15:06:14,737 INFO L87 Difference]: Start difference. First operand 72 states and 85 transitions. Second operand 28 states. [2020-07-10 15:06:19,303 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:19,303 INFO L93 Difference]: Finished difference Result 90 states and 104 transitions. [2020-07-10 15:06:19,304 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 20 states. [2020-07-10 15:06:19,304 INFO L78 Accepts]: Start accepts. Automaton has 28 states. Word has length 45 [2020-07-10 15:06:19,304 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-10 15:06:19,304 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 28 states. [2020-07-10 15:06:19,307 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 94 transitions. [2020-07-10 15:06:19,307 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 28 states. [2020-07-10 15:06:19,310 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 94 transitions. [2020-07-10 15:06:19,310 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 20 states and 94 transitions. [2020-07-10 15:06:19,500 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 94 edges. 94 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:06:19,504 INFO L225 Difference]: With dead ends: 90 [2020-07-10 15:06:19,504 INFO L226 Difference]: Without dead ends: 74 [2020-07-10 15:06:19,506 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 82 GetRequests, 43 SyntacticMatches, 0 SemanticMatches, 39 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 225 ImplicationChecksByTransitivity, 1.2s TimeCoverageRelationStatistics Valid=271, Invalid=1369, Unknown=0, NotChecked=0, Total=1640 [2020-07-10 15:06:19,506 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 74 states. [2020-07-10 15:06:19,636 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 74 to 63. [2020-07-10 15:06:19,637 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-10 15:06:19,637 INFO L82 GeneralOperation]: Start isEquivalent. First operand 74 states. Second operand 63 states. [2020-07-10 15:06:19,637 INFO L74 IsIncluded]: Start isIncluded. First operand 74 states. Second operand 63 states. [2020-07-10 15:06:19,637 INFO L87 Difference]: Start difference. First operand 74 states. Second operand 63 states. [2020-07-10 15:06:19,642 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:19,642 INFO L93 Difference]: Finished difference Result 74 states and 84 transitions. [2020-07-10 15:06:19,642 INFO L276 IsEmpty]: Start isEmpty. Operand 74 states and 84 transitions. [2020-07-10 15:06:19,643 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:19,643 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:19,643 INFO L74 IsIncluded]: Start isIncluded. First operand 63 states. Second operand 74 states. [2020-07-10 15:06:19,643 INFO L87 Difference]: Start difference. First operand 63 states. Second operand 74 states. [2020-07-10 15:06:19,647 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:19,647 INFO L93 Difference]: Finished difference Result 74 states and 84 transitions. [2020-07-10 15:06:19,647 INFO L276 IsEmpty]: Start isEmpty. Operand 74 states and 84 transitions. [2020-07-10 15:06:19,648 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:19,648 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:19,648 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-10 15:06:19,648 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-10 15:06:19,648 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 63 states. [2020-07-10 15:06:19,651 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 63 states to 63 states and 72 transitions. [2020-07-10 15:06:19,651 INFO L78 Accepts]: Start accepts. Automaton has 63 states and 72 transitions. Word has length 45 [2020-07-10 15:06:19,651 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-10 15:06:19,651 INFO L479 AbstractCegarLoop]: Abstraction has 63 states and 72 transitions. [2020-07-10 15:06:19,651 INFO L480 AbstractCegarLoop]: Interpolant automaton has 28 states. [2020-07-10 15:06:19,651 INFO L276 IsEmpty]: Start isEmpty. Operand 63 states and 72 transitions. [2020-07-10 15:06:19,652 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2020-07-10 15:06:19,652 INFO L414 BasicCegarLoop]: Found error trace [2020-07-10 15:06:19,653 INFO L422 BasicCegarLoop]: trace histogram [3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-10 15:06:19,865 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable5,5 z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-10 15:06:19,866 INFO L427 AbstractCegarLoop]: === Iteration 7 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-10 15:06:19,867 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-10 15:06:19,867 INFO L82 PathProgramCache]: Analyzing trace with hash 1069126843, now seen corresponding path program 1 times [2020-07-10 15:06:19,867 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-10 15:06:19,868 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1750834333] [2020-07-10 15:06:19,868 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-10 15:06:19,886 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:20,050 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:20,055 INFO L280 TraceCheckUtils]: 0: Hoare triple {2823#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;call ~#head~0.base, ~#head~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {2773#true} is VALID [2020-07-10 15:06:20,055 INFO L280 TraceCheckUtils]: 1: Hoare triple {2773#true} assume true; {2773#true} is VALID [2020-07-10 15:06:20,055 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {2773#true} {2773#true} #89#return; {2773#true} is VALID [2020-07-10 15:06:20,081 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:20,129 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:20,155 INFO L280 TraceCheckUtils]: 0: Hoare triple {2824#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {2773#true} is VALID [2020-07-10 15:06:20,156 INFO L280 TraceCheckUtils]: 1: Hoare triple {2773#true} assume ~size > 0; {2773#true} is VALID [2020-07-10 15:06:20,156 INFO L280 TraceCheckUtils]: 2: Hoare triple {2773#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {2773#true} is VALID [2020-07-10 15:06:20,157 INFO L280 TraceCheckUtils]: 3: Hoare triple {2773#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2833#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:20,158 INFO L280 TraceCheckUtils]: 4: Hoare triple {2833#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {2833#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:20,159 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {2833#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} {2773#true} #69#return; {2831#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:20,160 INFO L280 TraceCheckUtils]: 0: Hoare triple {2824#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {2773#true} is VALID [2020-07-10 15:06:20,161 INFO L263 TraceCheckUtils]: 1: Hoare triple {2773#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {2824#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:20,161 INFO L280 TraceCheckUtils]: 2: Hoare triple {2824#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {2773#true} is VALID [2020-07-10 15:06:20,162 INFO L280 TraceCheckUtils]: 3: Hoare triple {2773#true} assume ~size > 0; {2773#true} is VALID [2020-07-10 15:06:20,162 INFO L280 TraceCheckUtils]: 4: Hoare triple {2773#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {2773#true} is VALID [2020-07-10 15:06:20,163 INFO L280 TraceCheckUtils]: 5: Hoare triple {2773#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2833#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:20,164 INFO L280 TraceCheckUtils]: 6: Hoare triple {2833#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {2833#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:20,165 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {2833#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} {2773#true} #69#return; {2831#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:20,166 INFO L280 TraceCheckUtils]: 8: Hoare triple {2831#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {2832#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:20,167 INFO L280 TraceCheckUtils]: 9: Hoare triple {2832#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {2832#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:20,169 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {2832#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} {2773#true} #71#return; {2789#(<= |main_#t~ret32.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:20,173 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:20,257 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:20,314 INFO L280 TraceCheckUtils]: 0: Hoare triple {2824#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {2834#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:20,314 INFO L280 TraceCheckUtils]: 1: Hoare triple {2834#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {2834#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:20,315 INFO L280 TraceCheckUtils]: 2: Hoare triple {2834#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {2843#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:20,316 INFO L280 TraceCheckUtils]: 3: Hoare triple {2843#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2844#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:20,316 INFO L280 TraceCheckUtils]: 4: Hoare triple {2844#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {2844#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:20,317 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {2844#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {2834#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #69#return; {2841#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-10 15:06:20,318 INFO L280 TraceCheckUtils]: 0: Hoare triple {2824#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {2834#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:20,319 INFO L263 TraceCheckUtils]: 1: Hoare triple {2834#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {2824#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:20,319 INFO L280 TraceCheckUtils]: 2: Hoare triple {2824#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {2834#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:20,320 INFO L280 TraceCheckUtils]: 3: Hoare triple {2834#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {2834#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:20,321 INFO L280 TraceCheckUtils]: 4: Hoare triple {2834#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {2843#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:20,321 INFO L280 TraceCheckUtils]: 5: Hoare triple {2843#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2844#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:20,322 INFO L280 TraceCheckUtils]: 6: Hoare triple {2844#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {2844#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:20,323 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {2844#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {2834#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #69#return; {2841#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-10 15:06:20,324 INFO L280 TraceCheckUtils]: 8: Hoare triple {2841#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {2842#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-10 15:06:20,325 INFO L280 TraceCheckUtils]: 9: Hoare triple {2842#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} assume true; {2842#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-10 15:06:20,326 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {2842#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} {2790#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} #73#return; {2802#(<= (+ main_~dev1~0.offset 1) |main_#t~ret33.offset|)} is VALID [2020-07-10 15:06:20,356 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:20,361 INFO L280 TraceCheckUtils]: 0: Hoare triple {2845#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2773#true} is VALID [2020-07-10 15:06:20,362 INFO L280 TraceCheckUtils]: 1: Hoare triple {2773#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2773#true} is VALID [2020-07-10 15:06:20,362 INFO L280 TraceCheckUtils]: 2: Hoare triple {2773#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {2773#true} is VALID [2020-07-10 15:06:20,362 INFO L280 TraceCheckUtils]: 3: Hoare triple {2773#true} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2773#true} is VALID [2020-07-10 15:06:20,362 INFO L280 TraceCheckUtils]: 4: Hoare triple {2773#true} assume true; {2773#true} is VALID [2020-07-10 15:06:20,364 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {2773#true} {2803#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #75#return; {2803#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-10 15:06:20,367 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:20,416 INFO L280 TraceCheckUtils]: 0: Hoare triple {2845#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2846#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-10 15:06:20,417 INFO L280 TraceCheckUtils]: 1: Hoare triple {2846#(= |list_add_#in~new.offset| list_add_~new.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2846#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-10 15:06:20,417 INFO L280 TraceCheckUtils]: 2: Hoare triple {2846#(= |list_add_#in~new.offset| list_add_~new.offset)} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {2846#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-10 15:06:20,418 INFO L280 TraceCheckUtils]: 3: Hoare triple {2846#(= |list_add_#in~new.offset| list_add_~new.offset)} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2847#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-10 15:06:20,418 INFO L280 TraceCheckUtils]: 4: Hoare triple {2847#(= ~elem~0.offset |list_add_#in~new.offset|)} assume true; {2847#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-10 15:06:20,420 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {2847#(= ~elem~0.offset |list_add_#in~new.offset|)} {2803#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #77#return; {2816#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-10 15:06:20,421 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:20,448 INFO L280 TraceCheckUtils]: 0: Hoare triple {2845#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~entry.base, ~entry.offset := #in~entry.base, #in~entry.offset; {2848#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-10 15:06:20,449 INFO L280 TraceCheckUtils]: 1: Hoare triple {2848#(= |old(~elem~0.offset)| ~elem~0.offset)} assume !(~entry.base == ~elem~0.base && ~entry.offset == ~elem~0.offset); {2848#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-10 15:06:20,449 INFO L280 TraceCheckUtils]: 2: Hoare triple {2848#(= |old(~elem~0.offset)| ~elem~0.offset)} assume true; {2848#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-10 15:06:20,451 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2848#(= |old(~elem~0.offset)| ~elem~0.offset)} {2816#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} #79#return; {2816#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-10 15:06:20,452 INFO L263 TraceCheckUtils]: 0: Hoare triple {2773#true} call ULTIMATE.init(); {2823#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:20,452 INFO L280 TraceCheckUtils]: 1: Hoare triple {2823#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;call ~#head~0.base, ~#head~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {2773#true} is VALID [2020-07-10 15:06:20,452 INFO L280 TraceCheckUtils]: 2: Hoare triple {2773#true} assume true; {2773#true} is VALID [2020-07-10 15:06:20,453 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2773#true} {2773#true} #89#return; {2773#true} is VALID [2020-07-10 15:06:20,453 INFO L263 TraceCheckUtils]: 4: Hoare triple {2773#true} call #t~ret34 := main(); {2773#true} is VALID [2020-07-10 15:06:20,453 INFO L280 TraceCheckUtils]: 5: Hoare triple {2773#true} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {2773#true} is VALID [2020-07-10 15:06:20,454 INFO L263 TraceCheckUtils]: 6: Hoare triple {2773#true} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {2824#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:20,454 INFO L280 TraceCheckUtils]: 7: Hoare triple {2824#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {2773#true} is VALID [2020-07-10 15:06:20,455 INFO L263 TraceCheckUtils]: 8: Hoare triple {2773#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {2824#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:20,455 INFO L280 TraceCheckUtils]: 9: Hoare triple {2824#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {2773#true} is VALID [2020-07-10 15:06:20,455 INFO L280 TraceCheckUtils]: 10: Hoare triple {2773#true} assume ~size > 0; {2773#true} is VALID [2020-07-10 15:06:20,455 INFO L280 TraceCheckUtils]: 11: Hoare triple {2773#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {2773#true} is VALID [2020-07-10 15:06:20,456 INFO L280 TraceCheckUtils]: 12: Hoare triple {2773#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2833#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:20,456 INFO L280 TraceCheckUtils]: 13: Hoare triple {2833#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {2833#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:20,457 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {2833#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} {2773#true} #69#return; {2831#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:20,458 INFO L280 TraceCheckUtils]: 15: Hoare triple {2831#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {2832#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:20,458 INFO L280 TraceCheckUtils]: 16: Hoare triple {2832#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {2832#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:20,459 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {2832#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} {2773#true} #71#return; {2789#(<= |main_#t~ret32.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:20,460 INFO L280 TraceCheckUtils]: 18: Hoare triple {2789#(<= |main_#t~ret32.offset| ~guard_malloc_counter~0.offset)} ~dev1~0.base, ~dev1~0.offset := #t~ret32.base, #t~ret32.offset;havoc #t~ret32.base, #t~ret32.offset; {2790#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:20,461 INFO L263 TraceCheckUtils]: 19: Hoare triple {2790#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {2824#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:20,461 INFO L280 TraceCheckUtils]: 20: Hoare triple {2824#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {2834#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:20,462 INFO L263 TraceCheckUtils]: 21: Hoare triple {2834#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {2824#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:20,462 INFO L280 TraceCheckUtils]: 22: Hoare triple {2824#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {2834#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:20,463 INFO L280 TraceCheckUtils]: 23: Hoare triple {2834#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {2834#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:20,463 INFO L280 TraceCheckUtils]: 24: Hoare triple {2834#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {2843#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:20,464 INFO L280 TraceCheckUtils]: 25: Hoare triple {2843#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2844#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:20,465 INFO L280 TraceCheckUtils]: 26: Hoare triple {2844#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {2844#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:20,466 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {2844#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {2834#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #69#return; {2841#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-10 15:06:20,466 INFO L280 TraceCheckUtils]: 28: Hoare triple {2841#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {2842#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-10 15:06:20,467 INFO L280 TraceCheckUtils]: 29: Hoare triple {2842#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} assume true; {2842#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-10 15:06:20,468 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {2842#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} {2790#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} #73#return; {2802#(<= (+ main_~dev1~0.offset 1) |main_#t~ret33.offset|)} is VALID [2020-07-10 15:06:20,468 INFO L280 TraceCheckUtils]: 31: Hoare triple {2802#(<= (+ main_~dev1~0.offset 1) |main_#t~ret33.offset|)} ~dev2~0.base, ~dev2~0.offset := #t~ret33.base, #t~ret33.offset;havoc #t~ret33.base, #t~ret33.offset; {2803#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-10 15:06:20,469 INFO L280 TraceCheckUtils]: 32: Hoare triple {2803#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} assume (~dev1~0.base != 0 || ~dev1~0.offset != 0) && (~dev2~0.base != 0 || ~dev2~0.offset != 0); {2803#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-10 15:06:20,470 INFO L263 TraceCheckUtils]: 33: Hoare triple {2803#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {2845#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:20,470 INFO L280 TraceCheckUtils]: 34: Hoare triple {2845#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2773#true} is VALID [2020-07-10 15:06:20,471 INFO L280 TraceCheckUtils]: 35: Hoare triple {2773#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2773#true} is VALID [2020-07-10 15:06:20,471 INFO L280 TraceCheckUtils]: 36: Hoare triple {2773#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {2773#true} is VALID [2020-07-10 15:06:20,471 INFO L280 TraceCheckUtils]: 37: Hoare triple {2773#true} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2773#true} is VALID [2020-07-10 15:06:20,471 INFO L280 TraceCheckUtils]: 38: Hoare triple {2773#true} assume true; {2773#true} is VALID [2020-07-10 15:06:20,472 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {2773#true} {2803#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #75#return; {2803#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-10 15:06:20,474 INFO L263 TraceCheckUtils]: 40: Hoare triple {2803#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} call list_add(~dev1~0.base, ~dev1~0.offset, ~#head~0.base, ~#head~0.offset); {2845#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:20,475 INFO L280 TraceCheckUtils]: 41: Hoare triple {2845#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2846#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-10 15:06:20,476 INFO L280 TraceCheckUtils]: 42: Hoare triple {2846#(= |list_add_#in~new.offset| list_add_~new.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2846#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-10 15:06:20,476 INFO L280 TraceCheckUtils]: 43: Hoare triple {2846#(= |list_add_#in~new.offset| list_add_~new.offset)} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {2846#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-10 15:06:20,477 INFO L280 TraceCheckUtils]: 44: Hoare triple {2846#(= |list_add_#in~new.offset| list_add_~new.offset)} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2847#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-10 15:06:20,477 INFO L280 TraceCheckUtils]: 45: Hoare triple {2847#(= ~elem~0.offset |list_add_#in~new.offset|)} assume true; {2847#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-10 15:06:20,478 INFO L275 TraceCheckUtils]: 46: Hoare quadruple {2847#(= ~elem~0.offset |list_add_#in~new.offset|)} {2803#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #77#return; {2816#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-10 15:06:20,479 INFO L263 TraceCheckUtils]: 47: Hoare triple {2816#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} call list_del(~dev2~0.base, ~dev2~0.offset); {2845#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:20,480 INFO L280 TraceCheckUtils]: 48: Hoare triple {2845#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~entry.base, ~entry.offset := #in~entry.base, #in~entry.offset; {2848#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-10 15:06:20,480 INFO L280 TraceCheckUtils]: 49: Hoare triple {2848#(= |old(~elem~0.offset)| ~elem~0.offset)} assume !(~entry.base == ~elem~0.base && ~entry.offset == ~elem~0.offset); {2848#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-10 15:06:20,481 INFO L280 TraceCheckUtils]: 50: Hoare triple {2848#(= |old(~elem~0.offset)| ~elem~0.offset)} assume true; {2848#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2020-07-10 15:06:20,482 INFO L275 TraceCheckUtils]: 51: Hoare quadruple {2848#(= |old(~elem~0.offset)| ~elem~0.offset)} {2816#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} #79#return; {2816#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-10 15:06:20,483 INFO L263 TraceCheckUtils]: 52: Hoare triple {2816#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {2821#(<= (+ ~elem~0.offset 1) |list_add_#in~new.offset|)} is VALID [2020-07-10 15:06:20,484 INFO L280 TraceCheckUtils]: 53: Hoare triple {2821#(<= (+ ~elem~0.offset 1) |list_add_#in~new.offset|)} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2822#(not (= ~elem~0.offset list_add_~new.offset))} is VALID [2020-07-10 15:06:20,485 INFO L280 TraceCheckUtils]: 54: Hoare triple {2822#(not (= ~elem~0.offset list_add_~new.offset))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {2774#false} is VALID [2020-07-10 15:06:20,485 INFO L263 TraceCheckUtils]: 55: Hoare triple {2774#false} call __blast_assert(); {2774#false} is VALID [2020-07-10 15:06:20,485 INFO L280 TraceCheckUtils]: 56: Hoare triple {2774#false} assume !false; {2774#false} is VALID [2020-07-10 15:06:20,491 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 10 proven. 8 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2020-07-10 15:06:20,491 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1750834333] [2020-07-10 15:06:20,491 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [708480563] [2020-07-10 15:06:20,492 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-10 15:06:20,611 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:20,614 INFO L264 TraceCheckSpWp]: Trace formula consists of 317 conjuncts, 25 conjunts are in the unsatisfiable core [2020-07-10 15:06:20,649 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:20,653 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-10 15:06:21,139 INFO L263 TraceCheckUtils]: 0: Hoare triple {2773#true} call ULTIMATE.init(); {2773#true} is VALID [2020-07-10 15:06:21,139 INFO L280 TraceCheckUtils]: 1: Hoare triple {2773#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;call ~#head~0.base, ~#head~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {2773#true} is VALID [2020-07-10 15:06:21,139 INFO L280 TraceCheckUtils]: 2: Hoare triple {2773#true} assume true; {2773#true} is VALID [2020-07-10 15:06:21,139 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2773#true} {2773#true} #89#return; {2773#true} is VALID [2020-07-10 15:06:21,140 INFO L263 TraceCheckUtils]: 4: Hoare triple {2773#true} call #t~ret34 := main(); {2773#true} is VALID [2020-07-10 15:06:21,140 INFO L280 TraceCheckUtils]: 5: Hoare triple {2773#true} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {2773#true} is VALID [2020-07-10 15:06:21,140 INFO L263 TraceCheckUtils]: 6: Hoare triple {2773#true} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {2773#true} is VALID [2020-07-10 15:06:21,140 INFO L280 TraceCheckUtils]: 7: Hoare triple {2773#true} ~size := #in~size; {2773#true} is VALID [2020-07-10 15:06:21,140 INFO L263 TraceCheckUtils]: 8: Hoare triple {2773#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {2773#true} is VALID [2020-07-10 15:06:21,140 INFO L280 TraceCheckUtils]: 9: Hoare triple {2773#true} ~size := #in~size; {2773#true} is VALID [2020-07-10 15:06:21,140 INFO L280 TraceCheckUtils]: 10: Hoare triple {2773#true} assume ~size > 0; {2773#true} is VALID [2020-07-10 15:06:21,141 INFO L280 TraceCheckUtils]: 11: Hoare triple {2773#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {2773#true} is VALID [2020-07-10 15:06:21,141 INFO L280 TraceCheckUtils]: 12: Hoare triple {2773#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2833#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:21,141 INFO L280 TraceCheckUtils]: 13: Hoare triple {2833#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {2833#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:21,142 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {2833#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} {2773#true} #69#return; {2831#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:21,143 INFO L280 TraceCheckUtils]: 15: Hoare triple {2831#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {2832#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:21,143 INFO L280 TraceCheckUtils]: 16: Hoare triple {2832#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {2832#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:21,144 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {2832#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} {2773#true} #71#return; {2789#(<= |main_#t~ret32.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:21,144 INFO L280 TraceCheckUtils]: 18: Hoare triple {2789#(<= |main_#t~ret32.offset| ~guard_malloc_counter~0.offset)} ~dev1~0.base, ~dev1~0.offset := #t~ret32.base, #t~ret32.offset;havoc #t~ret32.base, #t~ret32.offset; {2790#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:21,145 INFO L263 TraceCheckUtils]: 19: Hoare triple {2790#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {2909#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:21,145 INFO L280 TraceCheckUtils]: 20: Hoare triple {2909#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} ~size := #in~size; {2909#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:21,146 INFO L263 TraceCheckUtils]: 21: Hoare triple {2909#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {2909#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:21,146 INFO L280 TraceCheckUtils]: 22: Hoare triple {2909#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} ~size := #in~size; {2909#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:21,147 INFO L280 TraceCheckUtils]: 23: Hoare triple {2909#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} assume ~size > 0; {2909#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:21,147 INFO L280 TraceCheckUtils]: 24: Hoare triple {2909#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {2843#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:21,148 INFO L280 TraceCheckUtils]: 25: Hoare triple {2843#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2928#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|))} is VALID [2020-07-10 15:06:21,148 INFO L280 TraceCheckUtils]: 26: Hoare triple {2928#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|))} assume true; {2928#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|))} is VALID [2020-07-10 15:06:21,150 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {2928#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|))} {2909#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} #69#return; {2935#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#t~ret30.offset|))} is VALID [2020-07-10 15:06:21,151 INFO L280 TraceCheckUtils]: 28: Hoare triple {2935#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#t~ret30.offset|))} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {2939#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|))} is VALID [2020-07-10 15:06:21,152 INFO L280 TraceCheckUtils]: 29: Hoare triple {2939#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|))} assume true; {2939#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|))} is VALID [2020-07-10 15:06:21,153 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {2939#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|))} {2790#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} #73#return; {2802#(<= (+ main_~dev1~0.offset 1) |main_#t~ret33.offset|)} is VALID [2020-07-10 15:06:21,154 INFO L280 TraceCheckUtils]: 31: Hoare triple {2802#(<= (+ main_~dev1~0.offset 1) |main_#t~ret33.offset|)} ~dev2~0.base, ~dev2~0.offset := #t~ret33.base, #t~ret33.offset;havoc #t~ret33.base, #t~ret33.offset; {2803#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-10 15:06:21,155 INFO L280 TraceCheckUtils]: 32: Hoare triple {2803#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} assume (~dev1~0.base != 0 || ~dev1~0.offset != 0) && (~dev2~0.base != 0 || ~dev2~0.offset != 0); {2803#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-10 15:06:21,155 INFO L263 TraceCheckUtils]: 33: Hoare triple {2803#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {2773#true} is VALID [2020-07-10 15:06:21,155 INFO L280 TraceCheckUtils]: 34: Hoare triple {2773#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2773#true} is VALID [2020-07-10 15:06:21,155 INFO L280 TraceCheckUtils]: 35: Hoare triple {2773#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2773#true} is VALID [2020-07-10 15:06:21,156 INFO L280 TraceCheckUtils]: 36: Hoare triple {2773#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {2773#true} is VALID [2020-07-10 15:06:21,156 INFO L280 TraceCheckUtils]: 37: Hoare triple {2773#true} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2773#true} is VALID [2020-07-10 15:06:21,156 INFO L280 TraceCheckUtils]: 38: Hoare triple {2773#true} assume true; {2773#true} is VALID [2020-07-10 15:06:21,158 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {2773#true} {2803#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #75#return; {2803#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-10 15:06:21,158 INFO L263 TraceCheckUtils]: 40: Hoare triple {2803#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} call list_add(~dev1~0.base, ~dev1~0.offset, ~#head~0.base, ~#head~0.offset); {2773#true} is VALID [2020-07-10 15:06:21,158 INFO L280 TraceCheckUtils]: 41: Hoare triple {2773#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2979#(<= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2020-07-10 15:06:21,159 INFO L280 TraceCheckUtils]: 42: Hoare triple {2979#(<= list_add_~new.offset |list_add_#in~new.offset|)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2979#(<= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2020-07-10 15:06:21,159 INFO L280 TraceCheckUtils]: 43: Hoare triple {2979#(<= list_add_~new.offset |list_add_#in~new.offset|)} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {2979#(<= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2020-07-10 15:06:21,159 INFO L280 TraceCheckUtils]: 44: Hoare triple {2979#(<= list_add_~new.offset |list_add_#in~new.offset|)} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2989#(<= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-10 15:06:21,160 INFO L280 TraceCheckUtils]: 45: Hoare triple {2989#(<= ~elem~0.offset |list_add_#in~new.offset|)} assume true; {2989#(<= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-10 15:06:21,161 INFO L275 TraceCheckUtils]: 46: Hoare quadruple {2989#(<= ~elem~0.offset |list_add_#in~new.offset|)} {2803#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #77#return; {2816#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-10 15:06:21,161 INFO L263 TraceCheckUtils]: 47: Hoare triple {2816#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} call list_del(~dev2~0.base, ~dev2~0.offset); {2999#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2020-07-10 15:06:21,162 INFO L280 TraceCheckUtils]: 48: Hoare triple {2999#(<= ~elem~0.offset |old(~elem~0.offset)|)} ~entry.base, ~entry.offset := #in~entry.base, #in~entry.offset; {2999#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2020-07-10 15:06:21,162 INFO L280 TraceCheckUtils]: 49: Hoare triple {2999#(<= ~elem~0.offset |old(~elem~0.offset)|)} assume !(~entry.base == ~elem~0.base && ~entry.offset == ~elem~0.offset); {2999#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2020-07-10 15:06:21,163 INFO L280 TraceCheckUtils]: 50: Hoare triple {2999#(<= ~elem~0.offset |old(~elem~0.offset)|)} assume true; {2999#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2020-07-10 15:06:21,163 INFO L275 TraceCheckUtils]: 51: Hoare quadruple {2999#(<= ~elem~0.offset |old(~elem~0.offset)|)} {2816#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} #79#return; {2816#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-10 15:06:21,164 INFO L263 TraceCheckUtils]: 52: Hoare triple {2816#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {2821#(<= (+ ~elem~0.offset 1) |list_add_#in~new.offset|)} is VALID [2020-07-10 15:06:21,165 INFO L280 TraceCheckUtils]: 53: Hoare triple {2821#(<= (+ ~elem~0.offset 1) |list_add_#in~new.offset|)} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {3018#(<= (+ ~elem~0.offset 1) list_add_~new.offset)} is VALID [2020-07-10 15:06:21,165 INFO L280 TraceCheckUtils]: 54: Hoare triple {3018#(<= (+ ~elem~0.offset 1) list_add_~new.offset)} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {2774#false} is VALID [2020-07-10 15:06:21,165 INFO L263 TraceCheckUtils]: 55: Hoare triple {2774#false} call __blast_assert(); {2774#false} is VALID [2020-07-10 15:06:21,165 INFO L280 TraceCheckUtils]: 56: Hoare triple {2774#false} assume !false; {2774#false} is VALID [2020-07-10 15:06:21,169 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 14 proven. 6 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2020-07-10 15:06:21,169 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-10 15:06:21,169 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [23, 20] total 31 [2020-07-10 15:06:21,170 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [887478015] [2020-07-10 15:06:21,170 INFO L78 Accepts]: Start accepts. Automaton has 31 states. Word has length 57 [2020-07-10 15:06:21,174 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-10 15:06:21,175 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 31 states. [2020-07-10 15:06:21,278 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 91 edges. 91 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:06:21,279 INFO L459 AbstractCegarLoop]: Interpolant automaton has 31 states [2020-07-10 15:06:21,279 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-10 15:06:21,279 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 31 interpolants. [2020-07-10 15:06:21,280 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=85, Invalid=845, Unknown=0, NotChecked=0, Total=930 [2020-07-10 15:06:21,280 INFO L87 Difference]: Start difference. First operand 63 states and 72 transitions. Second operand 31 states. [2020-07-10 15:06:26,315 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:26,315 INFO L93 Difference]: Finished difference Result 74 states and 84 transitions. [2020-07-10 15:06:26,315 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2020-07-10 15:06:26,315 INFO L78 Accepts]: Start accepts. Automaton has 31 states. Word has length 57 [2020-07-10 15:06:26,316 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-10 15:06:26,316 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 31 states. [2020-07-10 15:06:26,319 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 19 states to 19 states and 67 transitions. [2020-07-10 15:06:26,319 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 31 states. [2020-07-10 15:06:26,321 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 19 states to 19 states and 67 transitions. [2020-07-10 15:06:26,321 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 19 states and 67 transitions. [2020-07-10 15:06:26,471 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 67 edges. 67 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:06:26,476 INFO L225 Difference]: With dead ends: 74 [2020-07-10 15:06:26,476 INFO L226 Difference]: Without dead ends: 71 [2020-07-10 15:06:26,481 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 107 GetRequests, 63 SyntacticMatches, 0 SemanticMatches, 44 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 223 ImplicationChecksByTransitivity, 1.2s TimeCoverageRelationStatistics Valid=243, Invalid=1827, Unknown=0, NotChecked=0, Total=2070 [2020-07-10 15:06:26,481 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 71 states. [2020-07-10 15:06:26,616 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 71 to 70. [2020-07-10 15:06:26,617 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-10 15:06:26,617 INFO L82 GeneralOperation]: Start isEquivalent. First operand 71 states. Second operand 70 states. [2020-07-10 15:06:26,617 INFO L74 IsIncluded]: Start isIncluded. First operand 71 states. Second operand 70 states. [2020-07-10 15:06:26,618 INFO L87 Difference]: Start difference. First operand 71 states. Second operand 70 states. [2020-07-10 15:06:26,621 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:26,621 INFO L93 Difference]: Finished difference Result 71 states and 81 transitions. [2020-07-10 15:06:26,622 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 81 transitions. [2020-07-10 15:06:26,622 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:26,622 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:26,622 INFO L74 IsIncluded]: Start isIncluded. First operand 70 states. Second operand 71 states. [2020-07-10 15:06:26,623 INFO L87 Difference]: Start difference. First operand 70 states. Second operand 71 states. [2020-07-10 15:06:26,626 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:26,626 INFO L93 Difference]: Finished difference Result 71 states and 81 transitions. [2020-07-10 15:06:26,626 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 81 transitions. [2020-07-10 15:06:26,627 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:26,627 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:26,627 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-10 15:06:26,627 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-10 15:06:26,628 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 70 states. [2020-07-10 15:06:26,630 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 70 states to 70 states and 80 transitions. [2020-07-10 15:06:26,631 INFO L78 Accepts]: Start accepts. Automaton has 70 states and 80 transitions. Word has length 57 [2020-07-10 15:06:26,631 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-10 15:06:26,631 INFO L479 AbstractCegarLoop]: Abstraction has 70 states and 80 transitions. [2020-07-10 15:06:26,631 INFO L480 AbstractCegarLoop]: Interpolant automaton has 31 states. [2020-07-10 15:06:26,631 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 80 transitions. [2020-07-10 15:06:26,632 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2020-07-10 15:06:26,632 INFO L414 BasicCegarLoop]: Found error trace [2020-07-10 15:06:26,633 INFO L422 BasicCegarLoop]: trace histogram [3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-10 15:06:26,846 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 6 z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable6 [2020-07-10 15:06:26,847 INFO L427 AbstractCegarLoop]: === Iteration 8 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-10 15:06:26,847 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-10 15:06:26,848 INFO L82 PathProgramCache]: Analyzing trace with hash 1878473469, now seen corresponding path program 1 times [2020-07-10 15:06:26,849 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-10 15:06:26,849 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1719960302] [2020-07-10 15:06:26,849 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-10 15:06:26,866 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:26,972 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:26,987 INFO L280 TraceCheckUtils]: 0: Hoare triple {3448#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;call ~#head~0.base, ~#head~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {3400#true} is VALID [2020-07-10 15:06:26,988 INFO L280 TraceCheckUtils]: 1: Hoare triple {3400#true} assume true; {3400#true} is VALID [2020-07-10 15:06:26,988 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {3400#true} {3400#true} #89#return; {3400#true} is VALID [2020-07-10 15:06:27,005 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:27,040 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:27,060 INFO L280 TraceCheckUtils]: 0: Hoare triple {3449#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {3400#true} is VALID [2020-07-10 15:06:27,061 INFO L280 TraceCheckUtils]: 1: Hoare triple {3400#true} assume ~size > 0; {3400#true} is VALID [2020-07-10 15:06:27,061 INFO L280 TraceCheckUtils]: 2: Hoare triple {3400#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {3400#true} is VALID [2020-07-10 15:06:27,062 INFO L280 TraceCheckUtils]: 3: Hoare triple {3400#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {3458#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:27,062 INFO L280 TraceCheckUtils]: 4: Hoare triple {3458#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {3458#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:27,063 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {3458#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} {3400#true} #69#return; {3456#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:27,064 INFO L280 TraceCheckUtils]: 0: Hoare triple {3449#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {3400#true} is VALID [2020-07-10 15:06:27,064 INFO L263 TraceCheckUtils]: 1: Hoare triple {3400#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {3449#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:27,065 INFO L280 TraceCheckUtils]: 2: Hoare triple {3449#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {3400#true} is VALID [2020-07-10 15:06:27,065 INFO L280 TraceCheckUtils]: 3: Hoare triple {3400#true} assume ~size > 0; {3400#true} is VALID [2020-07-10 15:06:27,065 INFO L280 TraceCheckUtils]: 4: Hoare triple {3400#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {3400#true} is VALID [2020-07-10 15:06:27,066 INFO L280 TraceCheckUtils]: 5: Hoare triple {3400#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {3458#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:27,066 INFO L280 TraceCheckUtils]: 6: Hoare triple {3458#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {3458#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:27,067 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {3458#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} {3400#true} #69#return; {3456#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:27,068 INFO L280 TraceCheckUtils]: 8: Hoare triple {3456#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {3457#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:27,069 INFO L280 TraceCheckUtils]: 9: Hoare triple {3457#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {3457#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:27,070 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {3457#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} {3400#true} #71#return; {3416#(<= |main_#t~ret32.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:27,072 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:27,136 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:27,194 INFO L280 TraceCheckUtils]: 0: Hoare triple {3449#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {3459#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:27,195 INFO L280 TraceCheckUtils]: 1: Hoare triple {3459#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {3459#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:27,196 INFO L280 TraceCheckUtils]: 2: Hoare triple {3459#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {3468#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:27,197 INFO L280 TraceCheckUtils]: 3: Hoare triple {3468#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {3469#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:27,197 INFO L280 TraceCheckUtils]: 4: Hoare triple {3469#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {3469#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:27,198 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {3469#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {3459#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #69#return; {3466#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-10 15:06:27,199 INFO L280 TraceCheckUtils]: 0: Hoare triple {3449#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {3459#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:27,200 INFO L263 TraceCheckUtils]: 1: Hoare triple {3459#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {3449#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:27,200 INFO L280 TraceCheckUtils]: 2: Hoare triple {3449#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {3459#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:27,201 INFO L280 TraceCheckUtils]: 3: Hoare triple {3459#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {3459#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:27,202 INFO L280 TraceCheckUtils]: 4: Hoare triple {3459#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {3468#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:27,202 INFO L280 TraceCheckUtils]: 5: Hoare triple {3468#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {3469#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:27,203 INFO L280 TraceCheckUtils]: 6: Hoare triple {3469#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {3469#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:27,204 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {3469#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {3459#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #69#return; {3466#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-10 15:06:27,204 INFO L280 TraceCheckUtils]: 8: Hoare triple {3466#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {3467#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-10 15:06:27,204 INFO L280 TraceCheckUtils]: 9: Hoare triple {3467#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} assume true; {3467#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-10 15:06:27,205 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {3467#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} {3417#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} #73#return; {3429#(<= (+ main_~dev1~0.offset 1) |main_#t~ret33.offset|)} is VALID [2020-07-10 15:06:27,235 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:27,239 INFO L280 TraceCheckUtils]: 0: Hoare triple {3470#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {3400#true} is VALID [2020-07-10 15:06:27,239 INFO L280 TraceCheckUtils]: 1: Hoare triple {3400#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {3400#true} is VALID [2020-07-10 15:06:27,239 INFO L280 TraceCheckUtils]: 2: Hoare triple {3400#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {3400#true} is VALID [2020-07-10 15:06:27,239 INFO L280 TraceCheckUtils]: 3: Hoare triple {3400#true} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {3400#true} is VALID [2020-07-10 15:06:27,240 INFO L280 TraceCheckUtils]: 4: Hoare triple {3400#true} assume true; {3400#true} is VALID [2020-07-10 15:06:27,240 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {3400#true} {3430#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #75#return; {3430#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-10 15:06:27,242 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:27,302 INFO L280 TraceCheckUtils]: 0: Hoare triple {3470#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {3471#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-10 15:06:27,303 INFO L280 TraceCheckUtils]: 1: Hoare triple {3471#(= |list_add_#in~new.offset| list_add_~new.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {3471#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-10 15:06:27,303 INFO L280 TraceCheckUtils]: 2: Hoare triple {3471#(= |list_add_#in~new.offset| list_add_~new.offset)} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {3471#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-10 15:06:27,304 INFO L280 TraceCheckUtils]: 3: Hoare triple {3471#(= |list_add_#in~new.offset| list_add_~new.offset)} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {3472#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-10 15:06:27,304 INFO L280 TraceCheckUtils]: 4: Hoare triple {3472#(= ~elem~0.offset |list_add_#in~new.offset|)} assume true; {3472#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-10 15:06:27,305 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {3472#(= ~elem~0.offset |list_add_#in~new.offset|)} {3430#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #77#return; {3443#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-10 15:06:27,307 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:27,374 INFO L280 TraceCheckUtils]: 0: Hoare triple {3470#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~entry.base, ~entry.offset := #in~entry.base, #in~entry.offset; {3473#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |list_del_#in~entry.offset| list_del_~entry.offset))} is VALID [2020-07-10 15:06:27,375 INFO L280 TraceCheckUtils]: 1: Hoare triple {3473#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |list_del_#in~entry.offset| list_del_~entry.offset))} assume ~entry.base == ~elem~0.base && ~entry.offset == ~elem~0.offset;~elem~0.base, ~elem~0.offset := 0, 0; {3474#(= |old(~elem~0.offset)| |list_del_#in~entry.offset|)} is VALID [2020-07-10 15:06:27,376 INFO L280 TraceCheckUtils]: 2: Hoare triple {3474#(= |old(~elem~0.offset)| |list_del_#in~entry.offset|)} assume true; {3474#(= |old(~elem~0.offset)| |list_del_#in~entry.offset|)} is VALID [2020-07-10 15:06:27,377 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {3474#(= |old(~elem~0.offset)| |list_del_#in~entry.offset|)} {3443#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} #79#return; {3401#false} is VALID [2020-07-10 15:06:27,378 INFO L263 TraceCheckUtils]: 0: Hoare triple {3400#true} call ULTIMATE.init(); {3448#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:27,378 INFO L280 TraceCheckUtils]: 1: Hoare triple {3448#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;call ~#head~0.base, ~#head~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {3400#true} is VALID [2020-07-10 15:06:27,378 INFO L280 TraceCheckUtils]: 2: Hoare triple {3400#true} assume true; {3400#true} is VALID [2020-07-10 15:06:27,378 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {3400#true} {3400#true} #89#return; {3400#true} is VALID [2020-07-10 15:06:27,378 INFO L263 TraceCheckUtils]: 4: Hoare triple {3400#true} call #t~ret34 := main(); {3400#true} is VALID [2020-07-10 15:06:27,379 INFO L280 TraceCheckUtils]: 5: Hoare triple {3400#true} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {3400#true} is VALID [2020-07-10 15:06:27,379 INFO L263 TraceCheckUtils]: 6: Hoare triple {3400#true} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {3449#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:27,379 INFO L280 TraceCheckUtils]: 7: Hoare triple {3449#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {3400#true} is VALID [2020-07-10 15:06:27,380 INFO L263 TraceCheckUtils]: 8: Hoare triple {3400#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {3449#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:27,380 INFO L280 TraceCheckUtils]: 9: Hoare triple {3449#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {3400#true} is VALID [2020-07-10 15:06:27,380 INFO L280 TraceCheckUtils]: 10: Hoare triple {3400#true} assume ~size > 0; {3400#true} is VALID [2020-07-10 15:06:27,380 INFO L280 TraceCheckUtils]: 11: Hoare triple {3400#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {3400#true} is VALID [2020-07-10 15:06:27,381 INFO L280 TraceCheckUtils]: 12: Hoare triple {3400#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {3458#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:27,381 INFO L280 TraceCheckUtils]: 13: Hoare triple {3458#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {3458#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:27,382 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {3458#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} {3400#true} #69#return; {3456#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:27,387 INFO L280 TraceCheckUtils]: 15: Hoare triple {3456#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {3457#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:27,387 INFO L280 TraceCheckUtils]: 16: Hoare triple {3457#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {3457#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:27,388 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {3457#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} {3400#true} #71#return; {3416#(<= |main_#t~ret32.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:27,389 INFO L280 TraceCheckUtils]: 18: Hoare triple {3416#(<= |main_#t~ret32.offset| ~guard_malloc_counter~0.offset)} ~dev1~0.base, ~dev1~0.offset := #t~ret32.base, #t~ret32.offset;havoc #t~ret32.base, #t~ret32.offset; {3417#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:27,390 INFO L263 TraceCheckUtils]: 19: Hoare triple {3417#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {3449#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:27,390 INFO L280 TraceCheckUtils]: 20: Hoare triple {3449#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {3459#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:27,391 INFO L263 TraceCheckUtils]: 21: Hoare triple {3459#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {3449#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:27,392 INFO L280 TraceCheckUtils]: 22: Hoare triple {3449#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {3459#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:27,392 INFO L280 TraceCheckUtils]: 23: Hoare triple {3459#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {3459#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:27,393 INFO L280 TraceCheckUtils]: 24: Hoare triple {3459#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {3468#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:27,394 INFO L280 TraceCheckUtils]: 25: Hoare triple {3468#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {3469#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:27,394 INFO L280 TraceCheckUtils]: 26: Hoare triple {3469#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {3469#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:27,395 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {3469#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {3459#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #69#return; {3466#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-10 15:06:27,396 INFO L280 TraceCheckUtils]: 28: Hoare triple {3466#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {3467#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-10 15:06:27,396 INFO L280 TraceCheckUtils]: 29: Hoare triple {3467#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} assume true; {3467#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-10 15:06:27,398 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {3467#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} {3417#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} #73#return; {3429#(<= (+ main_~dev1~0.offset 1) |main_#t~ret33.offset|)} is VALID [2020-07-10 15:06:27,398 INFO L280 TraceCheckUtils]: 31: Hoare triple {3429#(<= (+ main_~dev1~0.offset 1) |main_#t~ret33.offset|)} ~dev2~0.base, ~dev2~0.offset := #t~ret33.base, #t~ret33.offset;havoc #t~ret33.base, #t~ret33.offset; {3430#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-10 15:06:27,399 INFO L280 TraceCheckUtils]: 32: Hoare triple {3430#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} assume (~dev1~0.base != 0 || ~dev1~0.offset != 0) && (~dev2~0.base != 0 || ~dev2~0.offset != 0); {3430#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-10 15:06:27,400 INFO L263 TraceCheckUtils]: 33: Hoare triple {3430#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {3470#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:27,400 INFO L280 TraceCheckUtils]: 34: Hoare triple {3470#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {3400#true} is VALID [2020-07-10 15:06:27,400 INFO L280 TraceCheckUtils]: 35: Hoare triple {3400#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {3400#true} is VALID [2020-07-10 15:06:27,401 INFO L280 TraceCheckUtils]: 36: Hoare triple {3400#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {3400#true} is VALID [2020-07-10 15:06:27,401 INFO L280 TraceCheckUtils]: 37: Hoare triple {3400#true} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {3400#true} is VALID [2020-07-10 15:06:27,401 INFO L280 TraceCheckUtils]: 38: Hoare triple {3400#true} assume true; {3400#true} is VALID [2020-07-10 15:06:27,402 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {3400#true} {3430#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #75#return; {3430#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-10 15:06:27,403 INFO L263 TraceCheckUtils]: 40: Hoare triple {3430#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} call list_add(~dev1~0.base, ~dev1~0.offset, ~#head~0.base, ~#head~0.offset); {3470#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:27,404 INFO L280 TraceCheckUtils]: 41: Hoare triple {3470#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {3471#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-10 15:06:27,404 INFO L280 TraceCheckUtils]: 42: Hoare triple {3471#(= |list_add_#in~new.offset| list_add_~new.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {3471#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-10 15:06:27,405 INFO L280 TraceCheckUtils]: 43: Hoare triple {3471#(= |list_add_#in~new.offset| list_add_~new.offset)} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {3471#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2020-07-10 15:06:27,406 INFO L280 TraceCheckUtils]: 44: Hoare triple {3471#(= |list_add_#in~new.offset| list_add_~new.offset)} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {3472#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-10 15:06:27,406 INFO L280 TraceCheckUtils]: 45: Hoare triple {3472#(= ~elem~0.offset |list_add_#in~new.offset|)} assume true; {3472#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-10 15:06:27,407 INFO L275 TraceCheckUtils]: 46: Hoare quadruple {3472#(= ~elem~0.offset |list_add_#in~new.offset|)} {3430#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #77#return; {3443#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-10 15:06:27,413 INFO L263 TraceCheckUtils]: 47: Hoare triple {3443#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} call list_del(~dev2~0.base, ~dev2~0.offset); {3470#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:27,414 INFO L280 TraceCheckUtils]: 48: Hoare triple {3470#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~entry.base, ~entry.offset := #in~entry.base, #in~entry.offset; {3473#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |list_del_#in~entry.offset| list_del_~entry.offset))} is VALID [2020-07-10 15:06:27,415 INFO L280 TraceCheckUtils]: 49: Hoare triple {3473#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |list_del_#in~entry.offset| list_del_~entry.offset))} assume ~entry.base == ~elem~0.base && ~entry.offset == ~elem~0.offset;~elem~0.base, ~elem~0.offset := 0, 0; {3474#(= |old(~elem~0.offset)| |list_del_#in~entry.offset|)} is VALID [2020-07-10 15:06:27,415 INFO L280 TraceCheckUtils]: 50: Hoare triple {3474#(= |old(~elem~0.offset)| |list_del_#in~entry.offset|)} assume true; {3474#(= |old(~elem~0.offset)| |list_del_#in~entry.offset|)} is VALID [2020-07-10 15:06:27,416 INFO L275 TraceCheckUtils]: 51: Hoare quadruple {3474#(= |old(~elem~0.offset)| |list_del_#in~entry.offset|)} {3443#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} #79#return; {3401#false} is VALID [2020-07-10 15:06:27,416 INFO L263 TraceCheckUtils]: 52: Hoare triple {3401#false} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {3401#false} is VALID [2020-07-10 15:06:27,416 INFO L280 TraceCheckUtils]: 53: Hoare triple {3401#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {3401#false} is VALID [2020-07-10 15:06:27,417 INFO L280 TraceCheckUtils]: 54: Hoare triple {3401#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {3401#false} is VALID [2020-07-10 15:06:27,417 INFO L263 TraceCheckUtils]: 55: Hoare triple {3401#false} call __blast_assert(); {3401#false} is VALID [2020-07-10 15:06:27,417 INFO L280 TraceCheckUtils]: 56: Hoare triple {3401#false} assume !false; {3401#false} is VALID [2020-07-10 15:06:27,421 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 13 proven. 5 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2020-07-10 15:06:27,422 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1719960302] [2020-07-10 15:06:27,422 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [502167606] [2020-07-10 15:06:27,422 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-10 15:06:27,552 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:27,553 INFO L264 TraceCheckSpWp]: Trace formula consists of 324 conjuncts, 23 conjunts are in the unsatisfiable core [2020-07-10 15:06:27,571 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:27,575 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-10 15:06:28,100 INFO L263 TraceCheckUtils]: 0: Hoare triple {3400#true} call ULTIMATE.init(); {3400#true} is VALID [2020-07-10 15:06:28,101 INFO L280 TraceCheckUtils]: 1: Hoare triple {3400#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;call ~#head~0.base, ~#head~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {3400#true} is VALID [2020-07-10 15:06:28,101 INFO L280 TraceCheckUtils]: 2: Hoare triple {3400#true} assume true; {3400#true} is VALID [2020-07-10 15:06:28,102 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {3400#true} {3400#true} #89#return; {3400#true} is VALID [2020-07-10 15:06:28,102 INFO L263 TraceCheckUtils]: 4: Hoare triple {3400#true} call #t~ret34 := main(); {3400#true} is VALID [2020-07-10 15:06:28,102 INFO L280 TraceCheckUtils]: 5: Hoare triple {3400#true} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {3400#true} is VALID [2020-07-10 15:06:28,102 INFO L263 TraceCheckUtils]: 6: Hoare triple {3400#true} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {3400#true} is VALID [2020-07-10 15:06:28,102 INFO L280 TraceCheckUtils]: 7: Hoare triple {3400#true} ~size := #in~size; {3400#true} is VALID [2020-07-10 15:06:28,103 INFO L263 TraceCheckUtils]: 8: Hoare triple {3400#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {3400#true} is VALID [2020-07-10 15:06:28,103 INFO L280 TraceCheckUtils]: 9: Hoare triple {3400#true} ~size := #in~size; {3400#true} is VALID [2020-07-10 15:06:28,103 INFO L280 TraceCheckUtils]: 10: Hoare triple {3400#true} assume ~size > 0; {3400#true} is VALID [2020-07-10 15:06:28,103 INFO L280 TraceCheckUtils]: 11: Hoare triple {3400#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {3400#true} is VALID [2020-07-10 15:06:28,104 INFO L280 TraceCheckUtils]: 12: Hoare triple {3400#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {3458#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:28,104 INFO L280 TraceCheckUtils]: 13: Hoare triple {3458#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {3458#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:28,105 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {3458#(<= |__getMemory_#res.offset| ~guard_malloc_counter~0.offset)} {3400#true} #69#return; {3456#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:28,105 INFO L280 TraceCheckUtils]: 15: Hoare triple {3456#(<= |my_malloc_#t~ret30.offset| ~guard_malloc_counter~0.offset)} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {3457#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:28,106 INFO L280 TraceCheckUtils]: 16: Hoare triple {3457#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} assume true; {3457#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:28,106 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {3457#(<= |my_malloc_#res.offset| ~guard_malloc_counter~0.offset)} {3400#true} #71#return; {3416#(<= |main_#t~ret32.offset| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:28,107 INFO L280 TraceCheckUtils]: 18: Hoare triple {3416#(<= |main_#t~ret32.offset| ~guard_malloc_counter~0.offset)} ~dev1~0.base, ~dev1~0.offset := #t~ret32.base, #t~ret32.offset;havoc #t~ret32.base, #t~ret32.offset; {3417#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:28,108 INFO L263 TraceCheckUtils]: 19: Hoare triple {3417#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {3535#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:28,108 INFO L280 TraceCheckUtils]: 20: Hoare triple {3535#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} ~size := #in~size; {3535#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:28,109 INFO L263 TraceCheckUtils]: 21: Hoare triple {3535#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {3535#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:28,109 INFO L280 TraceCheckUtils]: 22: Hoare triple {3535#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} ~size := #in~size; {3535#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:28,110 INFO L280 TraceCheckUtils]: 23: Hoare triple {3535#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} assume ~size > 0; {3535#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:28,111 INFO L280 TraceCheckUtils]: 24: Hoare triple {3535#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {3468#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:28,111 INFO L280 TraceCheckUtils]: 25: Hoare triple {3468#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {3554#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|))} is VALID [2020-07-10 15:06:28,112 INFO L280 TraceCheckUtils]: 26: Hoare triple {3554#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|))} assume true; {3554#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|))} is VALID [2020-07-10 15:06:28,113 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {3554#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|))} {3535#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} #69#return; {3561#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#t~ret30.offset|))} is VALID [2020-07-10 15:06:28,114 INFO L280 TraceCheckUtils]: 28: Hoare triple {3561#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#t~ret30.offset|))} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {3565#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|))} is VALID [2020-07-10 15:06:28,115 INFO L280 TraceCheckUtils]: 29: Hoare triple {3565#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|))} assume true; {3565#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|))} is VALID [2020-07-10 15:06:28,116 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {3565#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|))} {3417#(<= main_~dev1~0.offset ~guard_malloc_counter~0.offset)} #73#return; {3429#(<= (+ main_~dev1~0.offset 1) |main_#t~ret33.offset|)} is VALID [2020-07-10 15:06:28,117 INFO L280 TraceCheckUtils]: 31: Hoare triple {3429#(<= (+ main_~dev1~0.offset 1) |main_#t~ret33.offset|)} ~dev2~0.base, ~dev2~0.offset := #t~ret33.base, #t~ret33.offset;havoc #t~ret33.base, #t~ret33.offset; {3430#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-10 15:06:28,117 INFO L280 TraceCheckUtils]: 32: Hoare triple {3430#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} assume (~dev1~0.base != 0 || ~dev1~0.offset != 0) && (~dev2~0.base != 0 || ~dev2~0.offset != 0); {3430#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-10 15:06:28,118 INFO L263 TraceCheckUtils]: 33: Hoare triple {3430#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {3400#true} is VALID [2020-07-10 15:06:28,118 INFO L280 TraceCheckUtils]: 34: Hoare triple {3400#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {3400#true} is VALID [2020-07-10 15:06:28,118 INFO L280 TraceCheckUtils]: 35: Hoare triple {3400#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {3400#true} is VALID [2020-07-10 15:06:28,118 INFO L280 TraceCheckUtils]: 36: Hoare triple {3400#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {3400#true} is VALID [2020-07-10 15:06:28,119 INFO L280 TraceCheckUtils]: 37: Hoare triple {3400#true} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {3400#true} is VALID [2020-07-10 15:06:28,119 INFO L280 TraceCheckUtils]: 38: Hoare triple {3400#true} assume true; {3400#true} is VALID [2020-07-10 15:06:28,120 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {3400#true} {3430#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #75#return; {3430#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-10 15:06:28,120 INFO L263 TraceCheckUtils]: 40: Hoare triple {3430#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} call list_add(~dev1~0.base, ~dev1~0.offset, ~#head~0.base, ~#head~0.offset); {3400#true} is VALID [2020-07-10 15:06:28,128 INFO L280 TraceCheckUtils]: 41: Hoare triple {3400#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {3605#(<= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2020-07-10 15:06:28,129 INFO L280 TraceCheckUtils]: 42: Hoare triple {3605#(<= list_add_~new.offset |list_add_#in~new.offset|)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {3605#(<= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2020-07-10 15:06:28,129 INFO L280 TraceCheckUtils]: 43: Hoare triple {3605#(<= list_add_~new.offset |list_add_#in~new.offset|)} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {3605#(<= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2020-07-10 15:06:28,130 INFO L280 TraceCheckUtils]: 44: Hoare triple {3605#(<= list_add_~new.offset |list_add_#in~new.offset|)} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {3615#(<= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-10 15:06:28,130 INFO L280 TraceCheckUtils]: 45: Hoare triple {3615#(<= ~elem~0.offset |list_add_#in~new.offset|)} assume true; {3615#(<= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2020-07-10 15:06:28,132 INFO L275 TraceCheckUtils]: 46: Hoare quadruple {3615#(<= ~elem~0.offset |list_add_#in~new.offset|)} {3430#(<= (+ main_~dev1~0.offset 1) main_~dev2~0.offset)} #77#return; {3443#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} is VALID [2020-07-10 15:06:28,132 INFO L263 TraceCheckUtils]: 47: Hoare triple {3443#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} call list_del(~dev2~0.base, ~dev2~0.offset); {3625#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2020-07-10 15:06:28,133 INFO L280 TraceCheckUtils]: 48: Hoare triple {3625#(<= ~elem~0.offset |old(~elem~0.offset)|)} ~entry.base, ~entry.offset := #in~entry.base, #in~entry.offset; {3629#(and (<= ~elem~0.offset |old(~elem~0.offset)|) (<= |list_del_#in~entry.offset| list_del_~entry.offset))} is VALID [2020-07-10 15:06:28,133 INFO L280 TraceCheckUtils]: 49: Hoare triple {3629#(and (<= ~elem~0.offset |old(~elem~0.offset)|) (<= |list_del_#in~entry.offset| list_del_~entry.offset))} assume ~entry.base == ~elem~0.base && ~entry.offset == ~elem~0.offset;~elem~0.base, ~elem~0.offset := 0, 0; {3633#(<= |list_del_#in~entry.offset| |old(~elem~0.offset)|)} is VALID [2020-07-10 15:06:28,134 INFO L280 TraceCheckUtils]: 50: Hoare triple {3633#(<= |list_del_#in~entry.offset| |old(~elem~0.offset)|)} assume true; {3633#(<= |list_del_#in~entry.offset| |old(~elem~0.offset)|)} is VALID [2020-07-10 15:06:28,135 INFO L275 TraceCheckUtils]: 51: Hoare quadruple {3633#(<= |list_del_#in~entry.offset| |old(~elem~0.offset)|)} {3443#(<= (+ ~elem~0.offset 1) main_~dev2~0.offset)} #79#return; {3401#false} is VALID [2020-07-10 15:06:28,135 INFO L263 TraceCheckUtils]: 52: Hoare triple {3401#false} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {3401#false} is VALID [2020-07-10 15:06:28,135 INFO L280 TraceCheckUtils]: 53: Hoare triple {3401#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {3401#false} is VALID [2020-07-10 15:06:28,135 INFO L280 TraceCheckUtils]: 54: Hoare triple {3401#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {3401#false} is VALID [2020-07-10 15:06:28,135 INFO L263 TraceCheckUtils]: 55: Hoare triple {3401#false} call __blast_assert(); {3401#false} is VALID [2020-07-10 15:06:28,135 INFO L280 TraceCheckUtils]: 56: Hoare triple {3401#false} assume !false; {3401#false} is VALID [2020-07-10 15:06:28,138 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 15 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2020-07-10 15:06:28,139 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-10 15:06:28,139 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [22, 20] total 31 [2020-07-10 15:06:28,139 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1833560758] [2020-07-10 15:06:28,140 INFO L78 Accepts]: Start accepts. Automaton has 31 states. Word has length 57 [2020-07-10 15:06:28,143 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-10 15:06:28,143 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 31 states. [2020-07-10 15:06:28,254 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 89 edges. 89 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:06:28,254 INFO L459 AbstractCegarLoop]: Interpolant automaton has 31 states [2020-07-10 15:06:28,254 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-10 15:06:28,255 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 31 interpolants. [2020-07-10 15:06:28,255 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=84, Invalid=846, Unknown=0, NotChecked=0, Total=930 [2020-07-10 15:06:28,255 INFO L87 Difference]: Start difference. First operand 70 states and 80 transitions. Second operand 31 states. [2020-07-10 15:06:33,879 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:33,880 INFO L93 Difference]: Finished difference Result 84 states and 94 transitions. [2020-07-10 15:06:33,880 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 20 states. [2020-07-10 15:06:33,880 INFO L78 Accepts]: Start accepts. Automaton has 31 states. Word has length 57 [2020-07-10 15:06:33,880 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-10 15:06:33,880 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 31 states. [2020-07-10 15:06:33,882 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 76 transitions. [2020-07-10 15:06:33,883 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 31 states. [2020-07-10 15:06:33,885 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 76 transitions. [2020-07-10 15:06:33,885 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 20 states and 76 transitions. [2020-07-10 15:06:34,032 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 76 edges. 76 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:06:34,035 INFO L225 Difference]: With dead ends: 84 [2020-07-10 15:06:34,035 INFO L226 Difference]: Without dead ends: 71 [2020-07-10 15:06:34,037 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 107 GetRequests, 61 SyntacticMatches, 0 SemanticMatches, 46 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 260 ImplicationChecksByTransitivity, 1.3s TimeCoverageRelationStatistics Valid=245, Invalid=2011, Unknown=0, NotChecked=0, Total=2256 [2020-07-10 15:06:34,037 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 71 states. [2020-07-10 15:06:34,191 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 71 to 70. [2020-07-10 15:06:34,192 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-10 15:06:34,192 INFO L82 GeneralOperation]: Start isEquivalent. First operand 71 states. Second operand 70 states. [2020-07-10 15:06:34,192 INFO L74 IsIncluded]: Start isIncluded. First operand 71 states. Second operand 70 states. [2020-07-10 15:06:34,192 INFO L87 Difference]: Start difference. First operand 71 states. Second operand 70 states. [2020-07-10 15:06:34,196 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:34,196 INFO L93 Difference]: Finished difference Result 71 states and 80 transitions. [2020-07-10 15:06:34,196 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 80 transitions. [2020-07-10 15:06:34,197 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:34,197 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:34,197 INFO L74 IsIncluded]: Start isIncluded. First operand 70 states. Second operand 71 states. [2020-07-10 15:06:34,197 INFO L87 Difference]: Start difference. First operand 70 states. Second operand 71 states. [2020-07-10 15:06:34,201 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:34,201 INFO L93 Difference]: Finished difference Result 71 states and 80 transitions. [2020-07-10 15:06:34,201 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 80 transitions. [2020-07-10 15:06:34,202 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:34,202 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:34,202 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-10 15:06:34,202 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-10 15:06:34,202 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 70 states. [2020-07-10 15:06:34,205 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 70 states to 70 states and 79 transitions. [2020-07-10 15:06:34,206 INFO L78 Accepts]: Start accepts. Automaton has 70 states and 79 transitions. Word has length 57 [2020-07-10 15:06:34,206 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-10 15:06:34,206 INFO L479 AbstractCegarLoop]: Abstraction has 70 states and 79 transitions. [2020-07-10 15:06:34,206 INFO L480 AbstractCegarLoop]: Interpolant automaton has 31 states. [2020-07-10 15:06:34,206 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 79 transitions. [2020-07-10 15:06:34,207 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2020-07-10 15:06:34,207 INFO L414 BasicCegarLoop]: Found error trace [2020-07-10 15:06:34,207 INFO L422 BasicCegarLoop]: trace histogram [3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-10 15:06:34,421 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable7,7 z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-10 15:06:34,422 INFO L427 AbstractCegarLoop]: === Iteration 9 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-10 15:06:34,423 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-10 15:06:34,423 INFO L82 PathProgramCache]: Analyzing trace with hash 482320829, now seen corresponding path program 1 times [2020-07-10 15:06:34,423 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-10 15:06:34,424 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [666873329] [2020-07-10 15:06:34,424 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-10 15:06:34,452 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:34,527 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:34,542 INFO L280 TraceCheckUtils]: 0: Hoare triple {4088#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;call ~#head~0.base, ~#head~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {4044#true} is VALID [2020-07-10 15:06:34,543 INFO L280 TraceCheckUtils]: 1: Hoare triple {4044#true} assume true; {4044#true} is VALID [2020-07-10 15:06:34,543 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {4044#true} {4044#true} #89#return; {4044#true} is VALID [2020-07-10 15:06:34,558 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:34,572 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:34,582 INFO L280 TraceCheckUtils]: 0: Hoare triple {4089#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {4044#true} is VALID [2020-07-10 15:06:34,582 INFO L280 TraceCheckUtils]: 1: Hoare triple {4044#true} assume ~size > 0; {4044#true} is VALID [2020-07-10 15:06:34,582 INFO L280 TraceCheckUtils]: 2: Hoare triple {4044#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {4044#true} is VALID [2020-07-10 15:06:34,583 INFO L280 TraceCheckUtils]: 3: Hoare triple {4044#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {4044#true} is VALID [2020-07-10 15:06:34,583 INFO L280 TraceCheckUtils]: 4: Hoare triple {4044#true} assume true; {4044#true} is VALID [2020-07-10 15:06:34,583 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {4044#true} {4044#true} #69#return; {4044#true} is VALID [2020-07-10 15:06:34,583 INFO L280 TraceCheckUtils]: 0: Hoare triple {4089#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {4044#true} is VALID [2020-07-10 15:06:34,584 INFO L263 TraceCheckUtils]: 1: Hoare triple {4044#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {4089#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:34,585 INFO L280 TraceCheckUtils]: 2: Hoare triple {4089#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {4044#true} is VALID [2020-07-10 15:06:34,585 INFO L280 TraceCheckUtils]: 3: Hoare triple {4044#true} assume ~size > 0; {4044#true} is VALID [2020-07-10 15:06:34,585 INFO L280 TraceCheckUtils]: 4: Hoare triple {4044#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {4044#true} is VALID [2020-07-10 15:06:34,585 INFO L280 TraceCheckUtils]: 5: Hoare triple {4044#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {4044#true} is VALID [2020-07-10 15:06:34,585 INFO L280 TraceCheckUtils]: 6: Hoare triple {4044#true} assume true; {4044#true} is VALID [2020-07-10 15:06:34,586 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {4044#true} {4044#true} #69#return; {4044#true} is VALID [2020-07-10 15:06:34,586 INFO L280 TraceCheckUtils]: 8: Hoare triple {4044#true} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {4044#true} is VALID [2020-07-10 15:06:34,586 INFO L280 TraceCheckUtils]: 9: Hoare triple {4044#true} assume true; {4044#true} is VALID [2020-07-10 15:06:34,586 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {4044#true} {4044#true} #71#return; {4044#true} is VALID [2020-07-10 15:06:34,589 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:34,593 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:34,598 INFO L280 TraceCheckUtils]: 0: Hoare triple {4089#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {4044#true} is VALID [2020-07-10 15:06:34,599 INFO L280 TraceCheckUtils]: 1: Hoare triple {4044#true} assume ~size > 0; {4044#true} is VALID [2020-07-10 15:06:34,599 INFO L280 TraceCheckUtils]: 2: Hoare triple {4044#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {4044#true} is VALID [2020-07-10 15:06:34,599 INFO L280 TraceCheckUtils]: 3: Hoare triple {4044#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {4044#true} is VALID [2020-07-10 15:06:34,599 INFO L280 TraceCheckUtils]: 4: Hoare triple {4044#true} assume true; {4044#true} is VALID [2020-07-10 15:06:34,600 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {4044#true} {4044#true} #69#return; {4044#true} is VALID [2020-07-10 15:06:34,600 INFO L280 TraceCheckUtils]: 0: Hoare triple {4089#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {4044#true} is VALID [2020-07-10 15:06:34,601 INFO L263 TraceCheckUtils]: 1: Hoare triple {4044#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {4089#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:34,602 INFO L280 TraceCheckUtils]: 2: Hoare triple {4089#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {4044#true} is VALID [2020-07-10 15:06:34,602 INFO L280 TraceCheckUtils]: 3: Hoare triple {4044#true} assume ~size > 0; {4044#true} is VALID [2020-07-10 15:06:34,602 INFO L280 TraceCheckUtils]: 4: Hoare triple {4044#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {4044#true} is VALID [2020-07-10 15:06:34,602 INFO L280 TraceCheckUtils]: 5: Hoare triple {4044#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {4044#true} is VALID [2020-07-10 15:06:34,602 INFO L280 TraceCheckUtils]: 6: Hoare triple {4044#true} assume true; {4044#true} is VALID [2020-07-10 15:06:34,603 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {4044#true} {4044#true} #69#return; {4044#true} is VALID [2020-07-10 15:06:34,603 INFO L280 TraceCheckUtils]: 8: Hoare triple {4044#true} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {4044#true} is VALID [2020-07-10 15:06:34,603 INFO L280 TraceCheckUtils]: 9: Hoare triple {4044#true} assume true; {4044#true} is VALID [2020-07-10 15:06:34,603 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {4044#true} {4044#true} #73#return; {4044#true} is VALID [2020-07-10 15:06:34,621 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:34,667 INFO L280 TraceCheckUtils]: 0: Hoare triple {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {4103#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} is VALID [2020-07-10 15:06:34,668 INFO L280 TraceCheckUtils]: 1: Hoare triple {4103#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {4103#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} is VALID [2020-07-10 15:06:34,669 INFO L280 TraceCheckUtils]: 2: Hoare triple {4103#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {4103#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} is VALID [2020-07-10 15:06:34,670 INFO L280 TraceCheckUtils]: 3: Hoare triple {4103#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {4104#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} is VALID [2020-07-10 15:06:34,670 INFO L280 TraceCheckUtils]: 4: Hoare triple {4104#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} assume true; {4104#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} is VALID [2020-07-10 15:06:34,672 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {4104#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} {4044#true} #75#return; {4077#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} is VALID [2020-07-10 15:06:34,674 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:34,690 INFO L280 TraceCheckUtils]: 0: Hoare triple {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:34,691 INFO L280 TraceCheckUtils]: 1: Hoare triple {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:34,692 INFO L280 TraceCheckUtils]: 2: Hoare triple {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:34,693 INFO L280 TraceCheckUtils]: 3: Hoare triple {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} assume !(0 != #t~nondet31);havoc #t~nondet31; {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:34,693 INFO L280 TraceCheckUtils]: 4: Hoare triple {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} assume true; {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:34,695 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} {4077#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} #77#return; {4077#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} is VALID [2020-07-10 15:06:34,697 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:34,750 INFO L280 TraceCheckUtils]: 0: Hoare triple {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~entry.base, ~entry.offset := #in~entry.base, #in~entry.offset; {4105#(and (= list_del_~entry.base |list_del_#in~entry.base|) (= |old(~elem~0.offset)| ~elem~0.offset) (= |list_del_#in~entry.offset| list_del_~entry.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2020-07-10 15:06:34,751 INFO L280 TraceCheckUtils]: 1: Hoare triple {4105#(and (= list_del_~entry.base |list_del_#in~entry.base|) (= |old(~elem~0.offset)| ~elem~0.offset) (= |list_del_#in~entry.offset| list_del_~entry.offset) (= |old(~elem~0.base)| ~elem~0.base))} assume !(~entry.base == ~elem~0.base && ~entry.offset == ~elem~0.offset); {4106#(or (not (= |old(~elem~0.base)| |list_del_#in~entry.base|)) (not (= |old(~elem~0.offset)| |list_del_#in~entry.offset|)))} is VALID [2020-07-10 15:06:34,752 INFO L280 TraceCheckUtils]: 2: Hoare triple {4106#(or (not (= |old(~elem~0.base)| |list_del_#in~entry.base|)) (not (= |old(~elem~0.offset)| |list_del_#in~entry.offset|)))} assume true; {4106#(or (not (= |old(~elem~0.base)| |list_del_#in~entry.base|)) (not (= |old(~elem~0.offset)| |list_del_#in~entry.offset|)))} is VALID [2020-07-10 15:06:34,753 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {4106#(or (not (= |old(~elem~0.base)| |list_del_#in~entry.base|)) (not (= |old(~elem~0.offset)| |list_del_#in~entry.offset|)))} {4077#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} #79#return; {4045#false} is VALID [2020-07-10 15:06:34,755 INFO L263 TraceCheckUtils]: 0: Hoare triple {4044#true} call ULTIMATE.init(); {4088#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:34,755 INFO L280 TraceCheckUtils]: 1: Hoare triple {4088#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;call ~#head~0.base, ~#head~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {4044#true} is VALID [2020-07-10 15:06:34,755 INFO L280 TraceCheckUtils]: 2: Hoare triple {4044#true} assume true; {4044#true} is VALID [2020-07-10 15:06:34,756 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {4044#true} {4044#true} #89#return; {4044#true} is VALID [2020-07-10 15:06:34,756 INFO L263 TraceCheckUtils]: 4: Hoare triple {4044#true} call #t~ret34 := main(); {4044#true} is VALID [2020-07-10 15:06:34,756 INFO L280 TraceCheckUtils]: 5: Hoare triple {4044#true} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {4044#true} is VALID [2020-07-10 15:06:34,757 INFO L263 TraceCheckUtils]: 6: Hoare triple {4044#true} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {4089#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:34,757 INFO L280 TraceCheckUtils]: 7: Hoare triple {4089#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {4044#true} is VALID [2020-07-10 15:06:34,758 INFO L263 TraceCheckUtils]: 8: Hoare triple {4044#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {4089#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:34,759 INFO L280 TraceCheckUtils]: 9: Hoare triple {4089#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {4044#true} is VALID [2020-07-10 15:06:34,759 INFO L280 TraceCheckUtils]: 10: Hoare triple {4044#true} assume ~size > 0; {4044#true} is VALID [2020-07-10 15:06:34,759 INFO L280 TraceCheckUtils]: 11: Hoare triple {4044#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {4044#true} is VALID [2020-07-10 15:06:34,759 INFO L280 TraceCheckUtils]: 12: Hoare triple {4044#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {4044#true} is VALID [2020-07-10 15:06:34,759 INFO L280 TraceCheckUtils]: 13: Hoare triple {4044#true} assume true; {4044#true} is VALID [2020-07-10 15:06:34,760 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {4044#true} {4044#true} #69#return; {4044#true} is VALID [2020-07-10 15:06:34,760 INFO L280 TraceCheckUtils]: 15: Hoare triple {4044#true} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {4044#true} is VALID [2020-07-10 15:06:34,760 INFO L280 TraceCheckUtils]: 16: Hoare triple {4044#true} assume true; {4044#true} is VALID [2020-07-10 15:06:34,760 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {4044#true} {4044#true} #71#return; {4044#true} is VALID [2020-07-10 15:06:34,760 INFO L280 TraceCheckUtils]: 18: Hoare triple {4044#true} ~dev1~0.base, ~dev1~0.offset := #t~ret32.base, #t~ret32.offset;havoc #t~ret32.base, #t~ret32.offset; {4044#true} is VALID [2020-07-10 15:06:34,762 INFO L263 TraceCheckUtils]: 19: Hoare triple {4044#true} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {4089#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:34,762 INFO L280 TraceCheckUtils]: 20: Hoare triple {4089#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {4044#true} is VALID [2020-07-10 15:06:34,763 INFO L263 TraceCheckUtils]: 21: Hoare triple {4044#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {4089#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:34,763 INFO L280 TraceCheckUtils]: 22: Hoare triple {4089#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {4044#true} is VALID [2020-07-10 15:06:34,763 INFO L280 TraceCheckUtils]: 23: Hoare triple {4044#true} assume ~size > 0; {4044#true} is VALID [2020-07-10 15:06:34,764 INFO L280 TraceCheckUtils]: 24: Hoare triple {4044#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {4044#true} is VALID [2020-07-10 15:06:34,764 INFO L280 TraceCheckUtils]: 25: Hoare triple {4044#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {4044#true} is VALID [2020-07-10 15:06:34,764 INFO L280 TraceCheckUtils]: 26: Hoare triple {4044#true} assume true; {4044#true} is VALID [2020-07-10 15:06:34,764 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {4044#true} {4044#true} #69#return; {4044#true} is VALID [2020-07-10 15:06:34,764 INFO L280 TraceCheckUtils]: 28: Hoare triple {4044#true} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {4044#true} is VALID [2020-07-10 15:06:34,765 INFO L280 TraceCheckUtils]: 29: Hoare triple {4044#true} assume true; {4044#true} is VALID [2020-07-10 15:06:34,765 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {4044#true} {4044#true} #73#return; {4044#true} is VALID [2020-07-10 15:06:34,765 INFO L280 TraceCheckUtils]: 31: Hoare triple {4044#true} ~dev2~0.base, ~dev2~0.offset := #t~ret33.base, #t~ret33.offset;havoc #t~ret33.base, #t~ret33.offset; {4044#true} is VALID [2020-07-10 15:06:34,765 INFO L280 TraceCheckUtils]: 32: Hoare triple {4044#true} assume (~dev1~0.base != 0 || ~dev1~0.offset != 0) && (~dev2~0.base != 0 || ~dev2~0.offset != 0); {4044#true} is VALID [2020-07-10 15:06:34,767 INFO L263 TraceCheckUtils]: 33: Hoare triple {4044#true} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:34,768 INFO L280 TraceCheckUtils]: 34: Hoare triple {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {4103#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} is VALID [2020-07-10 15:06:34,769 INFO L280 TraceCheckUtils]: 35: Hoare triple {4103#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {4103#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} is VALID [2020-07-10 15:06:34,771 INFO L280 TraceCheckUtils]: 36: Hoare triple {4103#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {4103#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} is VALID [2020-07-10 15:06:34,772 INFO L280 TraceCheckUtils]: 37: Hoare triple {4103#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {4104#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} is VALID [2020-07-10 15:06:34,773 INFO L280 TraceCheckUtils]: 38: Hoare triple {4104#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} assume true; {4104#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} is VALID [2020-07-10 15:06:34,775 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {4104#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} {4044#true} #75#return; {4077#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} is VALID [2020-07-10 15:06:34,777 INFO L263 TraceCheckUtils]: 40: Hoare triple {4077#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} call list_add(~dev1~0.base, ~dev1~0.offset, ~#head~0.base, ~#head~0.offset); {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:34,778 INFO L280 TraceCheckUtils]: 41: Hoare triple {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:34,779 INFO L280 TraceCheckUtils]: 42: Hoare triple {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:34,780 INFO L280 TraceCheckUtils]: 43: Hoare triple {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:34,781 INFO L280 TraceCheckUtils]: 44: Hoare triple {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} assume !(0 != #t~nondet31);havoc #t~nondet31; {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:34,781 INFO L280 TraceCheckUtils]: 45: Hoare triple {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} assume true; {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:34,783 INFO L275 TraceCheckUtils]: 46: Hoare quadruple {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} {4077#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} #77#return; {4077#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} is VALID [2020-07-10 15:06:34,785 INFO L263 TraceCheckUtils]: 47: Hoare triple {4077#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} call list_del(~dev2~0.base, ~dev2~0.offset); {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:34,786 INFO L280 TraceCheckUtils]: 48: Hoare triple {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~entry.base, ~entry.offset := #in~entry.base, #in~entry.offset; {4105#(and (= list_del_~entry.base |list_del_#in~entry.base|) (= |old(~elem~0.offset)| ~elem~0.offset) (= |list_del_#in~entry.offset| list_del_~entry.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2020-07-10 15:06:34,787 INFO L280 TraceCheckUtils]: 49: Hoare triple {4105#(and (= list_del_~entry.base |list_del_#in~entry.base|) (= |old(~elem~0.offset)| ~elem~0.offset) (= |list_del_#in~entry.offset| list_del_~entry.offset) (= |old(~elem~0.base)| ~elem~0.base))} assume !(~entry.base == ~elem~0.base && ~entry.offset == ~elem~0.offset); {4106#(or (not (= |old(~elem~0.base)| |list_del_#in~entry.base|)) (not (= |old(~elem~0.offset)| |list_del_#in~entry.offset|)))} is VALID [2020-07-10 15:06:34,788 INFO L280 TraceCheckUtils]: 50: Hoare triple {4106#(or (not (= |old(~elem~0.base)| |list_del_#in~entry.base|)) (not (= |old(~elem~0.offset)| |list_del_#in~entry.offset|)))} assume true; {4106#(or (not (= |old(~elem~0.base)| |list_del_#in~entry.base|)) (not (= |old(~elem~0.offset)| |list_del_#in~entry.offset|)))} is VALID [2020-07-10 15:06:34,789 INFO L275 TraceCheckUtils]: 51: Hoare quadruple {4106#(or (not (= |old(~elem~0.base)| |list_del_#in~entry.base|)) (not (= |old(~elem~0.offset)| |list_del_#in~entry.offset|)))} {4077#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} #79#return; {4045#false} is VALID [2020-07-10 15:06:34,790 INFO L263 TraceCheckUtils]: 52: Hoare triple {4045#false} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {4045#false} is VALID [2020-07-10 15:06:34,790 INFO L280 TraceCheckUtils]: 53: Hoare triple {4045#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {4045#false} is VALID [2020-07-10 15:06:34,790 INFO L280 TraceCheckUtils]: 54: Hoare triple {4045#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {4045#false} is VALID [2020-07-10 15:06:34,790 INFO L263 TraceCheckUtils]: 55: Hoare triple {4045#false} call __blast_assert(); {4045#false} is VALID [2020-07-10 15:06:34,791 INFO L280 TraceCheckUtils]: 56: Hoare triple {4045#false} assume !false; {4045#false} is VALID [2020-07-10 15:06:34,796 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 4 proven. 5 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2020-07-10 15:06:34,796 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [666873329] [2020-07-10 15:06:34,797 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1041781890] [2020-07-10 15:06:34,797 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-10 15:06:34,922 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:34,925 INFO L264 TraceCheckSpWp]: Trace formula consists of 314 conjuncts, 37 conjunts are in the unsatisfiable core [2020-07-10 15:06:34,946 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:34,951 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-10 15:06:35,095 INFO L263 TraceCheckUtils]: 0: Hoare triple {4044#true} call ULTIMATE.init(); {4044#true} is VALID [2020-07-10 15:06:35,095 INFO L280 TraceCheckUtils]: 1: Hoare triple {4044#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;call ~#head~0.base, ~#head~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {4044#true} is VALID [2020-07-10 15:06:35,096 INFO L280 TraceCheckUtils]: 2: Hoare triple {4044#true} assume true; {4044#true} is VALID [2020-07-10 15:06:35,096 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {4044#true} {4044#true} #89#return; {4044#true} is VALID [2020-07-10 15:06:35,096 INFO L263 TraceCheckUtils]: 4: Hoare triple {4044#true} call #t~ret34 := main(); {4044#true} is VALID [2020-07-10 15:06:35,096 INFO L280 TraceCheckUtils]: 5: Hoare triple {4044#true} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {4044#true} is VALID [2020-07-10 15:06:35,096 INFO L263 TraceCheckUtils]: 6: Hoare triple {4044#true} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {4044#true} is VALID [2020-07-10 15:06:35,097 INFO L280 TraceCheckUtils]: 7: Hoare triple {4044#true} ~size := #in~size; {4044#true} is VALID [2020-07-10 15:06:35,097 INFO L263 TraceCheckUtils]: 8: Hoare triple {4044#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {4044#true} is VALID [2020-07-10 15:06:35,097 INFO L280 TraceCheckUtils]: 9: Hoare triple {4044#true} ~size := #in~size; {4044#true} is VALID [2020-07-10 15:06:35,097 INFO L280 TraceCheckUtils]: 10: Hoare triple {4044#true} assume ~size > 0; {4044#true} is VALID [2020-07-10 15:06:35,097 INFO L280 TraceCheckUtils]: 11: Hoare triple {4044#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {4044#true} is VALID [2020-07-10 15:06:35,098 INFO L280 TraceCheckUtils]: 12: Hoare triple {4044#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {4044#true} is VALID [2020-07-10 15:06:35,098 INFO L280 TraceCheckUtils]: 13: Hoare triple {4044#true} assume true; {4044#true} is VALID [2020-07-10 15:06:35,098 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {4044#true} {4044#true} #69#return; {4044#true} is VALID [2020-07-10 15:06:35,098 INFO L280 TraceCheckUtils]: 15: Hoare triple {4044#true} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {4044#true} is VALID [2020-07-10 15:06:35,098 INFO L280 TraceCheckUtils]: 16: Hoare triple {4044#true} assume true; {4044#true} is VALID [2020-07-10 15:06:35,098 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {4044#true} {4044#true} #71#return; {4044#true} is VALID [2020-07-10 15:06:35,099 INFO L280 TraceCheckUtils]: 18: Hoare triple {4044#true} ~dev1~0.base, ~dev1~0.offset := #t~ret32.base, #t~ret32.offset;havoc #t~ret32.base, #t~ret32.offset; {4044#true} is VALID [2020-07-10 15:06:35,099 INFO L263 TraceCheckUtils]: 19: Hoare triple {4044#true} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {4044#true} is VALID [2020-07-10 15:06:35,099 INFO L280 TraceCheckUtils]: 20: Hoare triple {4044#true} ~size := #in~size; {4044#true} is VALID [2020-07-10 15:06:35,099 INFO L263 TraceCheckUtils]: 21: Hoare triple {4044#true} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {4044#true} is VALID [2020-07-10 15:06:35,099 INFO L280 TraceCheckUtils]: 22: Hoare triple {4044#true} ~size := #in~size; {4044#true} is VALID [2020-07-10 15:06:35,099 INFO L280 TraceCheckUtils]: 23: Hoare triple {4044#true} assume ~size > 0; {4044#true} is VALID [2020-07-10 15:06:35,100 INFO L280 TraceCheckUtils]: 24: Hoare triple {4044#true} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {4044#true} is VALID [2020-07-10 15:06:35,100 INFO L280 TraceCheckUtils]: 25: Hoare triple {4044#true} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {4044#true} is VALID [2020-07-10 15:06:35,100 INFO L280 TraceCheckUtils]: 26: Hoare triple {4044#true} assume true; {4044#true} is VALID [2020-07-10 15:06:35,100 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {4044#true} {4044#true} #69#return; {4044#true} is VALID [2020-07-10 15:06:35,100 INFO L280 TraceCheckUtils]: 28: Hoare triple {4044#true} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {4044#true} is VALID [2020-07-10 15:06:35,101 INFO L280 TraceCheckUtils]: 29: Hoare triple {4044#true} assume true; {4044#true} is VALID [2020-07-10 15:06:35,101 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {4044#true} {4044#true} #73#return; {4044#true} is VALID [2020-07-10 15:06:35,101 INFO L280 TraceCheckUtils]: 31: Hoare triple {4044#true} ~dev2~0.base, ~dev2~0.offset := #t~ret33.base, #t~ret33.offset;havoc #t~ret33.base, #t~ret33.offset; {4044#true} is VALID [2020-07-10 15:06:35,101 INFO L280 TraceCheckUtils]: 32: Hoare triple {4044#true} assume (~dev1~0.base != 0 || ~dev1~0.offset != 0) && (~dev2~0.base != 0 || ~dev2~0.offset != 0); {4044#true} is VALID [2020-07-10 15:06:35,101 INFO L263 TraceCheckUtils]: 33: Hoare triple {4044#true} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {4044#true} is VALID [2020-07-10 15:06:35,102 INFO L280 TraceCheckUtils]: 34: Hoare triple {4044#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {4103#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} is VALID [2020-07-10 15:06:35,103 INFO L280 TraceCheckUtils]: 35: Hoare triple {4103#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {4103#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} is VALID [2020-07-10 15:06:35,104 INFO L280 TraceCheckUtils]: 36: Hoare triple {4103#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {4103#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} is VALID [2020-07-10 15:06:35,104 INFO L280 TraceCheckUtils]: 37: Hoare triple {4103#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {4104#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} is VALID [2020-07-10 15:06:35,105 INFO L280 TraceCheckUtils]: 38: Hoare triple {4104#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} assume true; {4104#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} is VALID [2020-07-10 15:06:35,106 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {4104#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} {4044#true} #75#return; {4077#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} is VALID [2020-07-10 15:06:35,108 INFO L263 TraceCheckUtils]: 40: Hoare triple {4077#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} call list_add(~dev1~0.base, ~dev1~0.offset, ~#head~0.base, ~#head~0.offset); {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:35,109 INFO L280 TraceCheckUtils]: 41: Hoare triple {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:35,110 INFO L280 TraceCheckUtils]: 42: Hoare triple {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:35,110 INFO L280 TraceCheckUtils]: 43: Hoare triple {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:35,111 INFO L280 TraceCheckUtils]: 44: Hoare triple {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} assume !(0 != #t~nondet31);havoc #t~nondet31; {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:35,112 INFO L280 TraceCheckUtils]: 45: Hoare triple {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} assume true; {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:35,113 INFO L275 TraceCheckUtils]: 46: Hoare quadruple {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} {4077#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} #77#return; {4077#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} is VALID [2020-07-10 15:06:35,115 INFO L263 TraceCheckUtils]: 47: Hoare triple {4077#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} call list_del(~dev2~0.base, ~dev2~0.offset); {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:35,115 INFO L280 TraceCheckUtils]: 48: Hoare triple {4102#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~entry.base, ~entry.offset := #in~entry.base, #in~entry.offset; {4105#(and (= list_del_~entry.base |list_del_#in~entry.base|) (= |old(~elem~0.offset)| ~elem~0.offset) (= |list_del_#in~entry.offset| list_del_~entry.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2020-07-10 15:06:35,116 INFO L280 TraceCheckUtils]: 49: Hoare triple {4105#(and (= list_del_~entry.base |list_del_#in~entry.base|) (= |old(~elem~0.offset)| ~elem~0.offset) (= |list_del_#in~entry.offset| list_del_~entry.offset) (= |old(~elem~0.base)| ~elem~0.base))} assume !(~entry.base == ~elem~0.base && ~entry.offset == ~elem~0.offset); {4257#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base) (or (not (= ~elem~0.base |list_del_#in~entry.base|)) (not (= |list_del_#in~entry.offset| ~elem~0.offset))))} is VALID [2020-07-10 15:06:35,117 INFO L280 TraceCheckUtils]: 50: Hoare triple {4257#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base) (or (not (= ~elem~0.base |list_del_#in~entry.base|)) (not (= |list_del_#in~entry.offset| ~elem~0.offset))))} assume true; {4257#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base) (or (not (= ~elem~0.base |list_del_#in~entry.base|)) (not (= |list_del_#in~entry.offset| ~elem~0.offset))))} is VALID [2020-07-10 15:06:35,118 INFO L275 TraceCheckUtils]: 51: Hoare quadruple {4257#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base) (or (not (= ~elem~0.base |list_del_#in~entry.base|)) (not (= |list_del_#in~entry.offset| ~elem~0.offset))))} {4077#(and (= main_~dev2~0.base ~elem~0.base) (= main_~dev2~0.offset ~elem~0.offset))} #79#return; {4045#false} is VALID [2020-07-10 15:06:35,118 INFO L263 TraceCheckUtils]: 52: Hoare triple {4045#false} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {4045#false} is VALID [2020-07-10 15:06:35,118 INFO L280 TraceCheckUtils]: 53: Hoare triple {4045#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {4045#false} is VALID [2020-07-10 15:06:35,119 INFO L280 TraceCheckUtils]: 54: Hoare triple {4045#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {4045#false} is VALID [2020-07-10 15:06:35,119 INFO L263 TraceCheckUtils]: 55: Hoare triple {4045#false} call __blast_assert(); {4045#false} is VALID [2020-07-10 15:06:35,119 INFO L280 TraceCheckUtils]: 56: Hoare triple {4045#false} assume !false; {4045#false} is VALID [2020-07-10 15:06:35,123 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 5 proven. 5 refuted. 0 times theorem prover too weak. 11 trivial. 0 not checked. [2020-07-10 15:06:35,124 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-10 15:06:35,125 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 8] total 11 [2020-07-10 15:06:35,128 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1016123044] [2020-07-10 15:06:35,129 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 57 [2020-07-10 15:06:35,136 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-10 15:06:35,136 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states. [2020-07-10 15:06:35,216 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 59 edges. 59 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:06:35,216 INFO L459 AbstractCegarLoop]: Interpolant automaton has 11 states [2020-07-10 15:06:35,216 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-10 15:06:35,216 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2020-07-10 15:06:35,217 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=86, Unknown=0, NotChecked=0, Total=110 [2020-07-10 15:06:35,217 INFO L87 Difference]: Start difference. First operand 70 states and 79 transitions. Second operand 11 states. [2020-07-10 15:06:36,827 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:36,827 INFO L93 Difference]: Finished difference Result 81 states and 89 transitions. [2020-07-10 15:06:36,827 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2020-07-10 15:06:36,827 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 57 [2020-07-10 15:06:36,827 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-10 15:06:36,827 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2020-07-10 15:06:36,829 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 64 transitions. [2020-07-10 15:06:36,830 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2020-07-10 15:06:36,831 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 64 transitions. [2020-07-10 15:06:36,832 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states and 64 transitions. [2020-07-10 15:06:36,947 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 64 edges. 64 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:06:36,949 INFO L225 Difference]: With dead ends: 81 [2020-07-10 15:06:36,949 INFO L226 Difference]: Without dead ends: 69 [2020-07-10 15:06:36,951 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 83 GetRequests, 65 SyntacticMatches, 4 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 27 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=59, Invalid=181, Unknown=0, NotChecked=0, Total=240 [2020-07-10 15:06:36,951 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 69 states. [2020-07-10 15:06:37,097 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 69 to 69. [2020-07-10 15:06:37,097 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-10 15:06:37,097 INFO L82 GeneralOperation]: Start isEquivalent. First operand 69 states. Second operand 69 states. [2020-07-10 15:06:37,097 INFO L74 IsIncluded]: Start isIncluded. First operand 69 states. Second operand 69 states. [2020-07-10 15:06:37,098 INFO L87 Difference]: Start difference. First operand 69 states. Second operand 69 states. [2020-07-10 15:06:37,103 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:37,104 INFO L93 Difference]: Finished difference Result 69 states and 77 transitions. [2020-07-10 15:06:37,104 INFO L276 IsEmpty]: Start isEmpty. Operand 69 states and 77 transitions. [2020-07-10 15:06:37,104 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:37,104 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:37,104 INFO L74 IsIncluded]: Start isIncluded. First operand 69 states. Second operand 69 states. [2020-07-10 15:06:37,105 INFO L87 Difference]: Start difference. First operand 69 states. Second operand 69 states. [2020-07-10 15:06:37,108 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:37,108 INFO L93 Difference]: Finished difference Result 69 states and 77 transitions. [2020-07-10 15:06:37,108 INFO L276 IsEmpty]: Start isEmpty. Operand 69 states and 77 transitions. [2020-07-10 15:06:37,108 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:37,109 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:37,109 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-10 15:06:37,109 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-10 15:06:37,109 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 69 states. [2020-07-10 15:06:37,111 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 69 states to 69 states and 77 transitions. [2020-07-10 15:06:37,111 INFO L78 Accepts]: Start accepts. Automaton has 69 states and 77 transitions. Word has length 57 [2020-07-10 15:06:37,111 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-10 15:06:37,111 INFO L479 AbstractCegarLoop]: Abstraction has 69 states and 77 transitions. [2020-07-10 15:06:37,111 INFO L480 AbstractCegarLoop]: Interpolant automaton has 11 states. [2020-07-10 15:06:37,112 INFO L276 IsEmpty]: Start isEmpty. Operand 69 states and 77 transitions. [2020-07-10 15:06:37,113 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2020-07-10 15:06:37,113 INFO L414 BasicCegarLoop]: Found error trace [2020-07-10 15:06:37,114 INFO L422 BasicCegarLoop]: trace histogram [3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-10 15:06:37,327 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable8,8 z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-10 15:06:37,328 INFO L427 AbstractCegarLoop]: === Iteration 10 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-10 15:06:37,328 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-10 15:06:37,329 INFO L82 PathProgramCache]: Analyzing trace with hash 1291667455, now seen corresponding path program 1 times [2020-07-10 15:06:37,329 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-10 15:06:37,329 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1195145593] [2020-07-10 15:06:37,330 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-10 15:06:37,345 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:37,493 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:37,506 INFO L280 TraceCheckUtils]: 0: Hoare triple {4680#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;call ~#head~0.base, ~#head~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {4635#(<= 0 ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,507 INFO L280 TraceCheckUtils]: 1: Hoare triple {4635#(<= 0 ~guard_malloc_counter~0.offset)} assume true; {4635#(<= 0 ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,508 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {4635#(<= 0 ~guard_malloc_counter~0.offset)} {4630#true} #89#return; {4635#(<= 0 ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,526 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:37,564 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:37,582 INFO L280 TraceCheckUtils]: 0: Hoare triple {4681#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:37,582 INFO L280 TraceCheckUtils]: 1: Hoare triple {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:37,583 INFO L280 TraceCheckUtils]: 2: Hoare triple {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,584 INFO L280 TraceCheckUtils]: 3: Hoare triple {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,584 INFO L280 TraceCheckUtils]: 4: Hoare triple {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume true; {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,585 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #69#return; {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,586 INFO L280 TraceCheckUtils]: 0: Hoare triple {4681#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:37,587 INFO L263 TraceCheckUtils]: 1: Hoare triple {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {4681#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:37,588 INFO L280 TraceCheckUtils]: 2: Hoare triple {4681#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:37,588 INFO L280 TraceCheckUtils]: 3: Hoare triple {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:37,589 INFO L280 TraceCheckUtils]: 4: Hoare triple {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,590 INFO L280 TraceCheckUtils]: 5: Hoare triple {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,590 INFO L280 TraceCheckUtils]: 6: Hoare triple {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume true; {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,591 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #69#return; {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,592 INFO L280 TraceCheckUtils]: 8: Hoare triple {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,593 INFO L280 TraceCheckUtils]: 9: Hoare triple {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume true; {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,594 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} {4635#(<= 0 ~guard_malloc_counter~0.offset)} #71#return; {4647#(<= 1 ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,597 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:37,650 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:37,689 INFO L280 TraceCheckUtils]: 0: Hoare triple {4681#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:37,689 INFO L280 TraceCheckUtils]: 1: Hoare triple {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:37,690 INFO L280 TraceCheckUtils]: 2: Hoare triple {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,691 INFO L280 TraceCheckUtils]: 3: Hoare triple {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {4698#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:37,692 INFO L280 TraceCheckUtils]: 4: Hoare triple {4698#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {4698#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:37,693 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {4698#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #69#return; {4696#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-10 15:06:37,694 INFO L280 TraceCheckUtils]: 0: Hoare triple {4681#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:37,695 INFO L263 TraceCheckUtils]: 1: Hoare triple {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {4681#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:37,695 INFO L280 TraceCheckUtils]: 2: Hoare triple {4681#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:37,696 INFO L280 TraceCheckUtils]: 3: Hoare triple {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:37,696 INFO L280 TraceCheckUtils]: 4: Hoare triple {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,697 INFO L280 TraceCheckUtils]: 5: Hoare triple {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {4698#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:37,698 INFO L280 TraceCheckUtils]: 6: Hoare triple {4698#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {4698#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:37,699 INFO L275 TraceCheckUtils]: 7: Hoare quadruple {4698#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #69#return; {4696#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-10 15:06:37,700 INFO L280 TraceCheckUtils]: 8: Hoare triple {4696#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {4697#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-10 15:06:37,701 INFO L280 TraceCheckUtils]: 9: Hoare triple {4697#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} assume true; {4697#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-10 15:06:37,702 INFO L275 TraceCheckUtils]: 10: Hoare quadruple {4697#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} {4647#(<= 1 ~guard_malloc_counter~0.offset)} #73#return; {4659#(<= 2 |main_#t~ret33.offset|)} is VALID [2020-07-10 15:06:37,728 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:37,732 INFO L280 TraceCheckUtils]: 0: Hoare triple {4699#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {4630#true} is VALID [2020-07-10 15:06:37,732 INFO L280 TraceCheckUtils]: 1: Hoare triple {4630#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {4630#true} is VALID [2020-07-10 15:06:37,732 INFO L280 TraceCheckUtils]: 2: Hoare triple {4630#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {4630#true} is VALID [2020-07-10 15:06:37,733 INFO L280 TraceCheckUtils]: 3: Hoare triple {4630#true} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {4630#true} is VALID [2020-07-10 15:06:37,733 INFO L280 TraceCheckUtils]: 4: Hoare triple {4630#true} assume true; {4630#true} is VALID [2020-07-10 15:06:37,734 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {4630#true} {4660#(<= 2 main_~dev2~0.offset)} #75#return; {4660#(<= 2 main_~dev2~0.offset)} is VALID [2020-07-10 15:06:37,736 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:37,739 INFO L280 TraceCheckUtils]: 0: Hoare triple {4699#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {4630#true} is VALID [2020-07-10 15:06:37,740 INFO L280 TraceCheckUtils]: 1: Hoare triple {4630#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {4630#true} is VALID [2020-07-10 15:06:37,740 INFO L280 TraceCheckUtils]: 2: Hoare triple {4630#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {4630#true} is VALID [2020-07-10 15:06:37,740 INFO L280 TraceCheckUtils]: 3: Hoare triple {4630#true} assume !(0 != #t~nondet31);havoc #t~nondet31; {4630#true} is VALID [2020-07-10 15:06:37,740 INFO L280 TraceCheckUtils]: 4: Hoare triple {4630#true} assume true; {4630#true} is VALID [2020-07-10 15:06:37,742 INFO L275 TraceCheckUtils]: 5: Hoare quadruple {4630#true} {4660#(<= 2 main_~dev2~0.offset)} #77#return; {4660#(<= 2 main_~dev2~0.offset)} is VALID [2020-07-10 15:06:37,743 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:37,766 INFO L280 TraceCheckUtils]: 0: Hoare triple {4699#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~entry.base, ~entry.offset := #in~entry.base, #in~entry.offset; {4630#true} is VALID [2020-07-10 15:06:37,767 INFO L280 TraceCheckUtils]: 1: Hoare triple {4630#true} assume ~entry.base == ~elem~0.base && ~entry.offset == ~elem~0.offset;~elem~0.base, ~elem~0.offset := 0, 0; {4700#(= 0 ~elem~0.offset)} is VALID [2020-07-10 15:06:37,767 INFO L280 TraceCheckUtils]: 2: Hoare triple {4700#(= 0 ~elem~0.offset)} assume true; {4700#(= 0 ~elem~0.offset)} is VALID [2020-07-10 15:06:37,768 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {4700#(= 0 ~elem~0.offset)} {4660#(<= 2 main_~dev2~0.offset)} #79#return; {4677#(and (= 0 ~elem~0.offset) (<= 2 main_~dev2~0.offset))} is VALID [2020-07-10 15:06:37,770 INFO L263 TraceCheckUtils]: 0: Hoare triple {4630#true} call ULTIMATE.init(); {4680#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:37,772 INFO L280 TraceCheckUtils]: 1: Hoare triple {4680#(and (= |#valid| |old(#valid)|) (= ~elem~0.base |old(~elem~0.base)|) (= |#NULL.base| |old(#NULL.base)|) (= |~#head~0.base| |old(~#head~0.base)|) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= |#NULL.offset| |old(#NULL.offset)|) (= ~elem~0.offset |old(~elem~0.offset)|) (= |old(#length)| |#length|) (= |~#head~0.offset| |old(~#head~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;call ~#head~0.base, ~#head~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {4635#(<= 0 ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,772 INFO L280 TraceCheckUtils]: 2: Hoare triple {4635#(<= 0 ~guard_malloc_counter~0.offset)} assume true; {4635#(<= 0 ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,773 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {4635#(<= 0 ~guard_malloc_counter~0.offset)} {4630#true} #89#return; {4635#(<= 0 ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,774 INFO L263 TraceCheckUtils]: 4: Hoare triple {4635#(<= 0 ~guard_malloc_counter~0.offset)} call #t~ret34 := main(); {4635#(<= 0 ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,774 INFO L280 TraceCheckUtils]: 5: Hoare triple {4635#(<= 0 ~guard_malloc_counter~0.offset)} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {4635#(<= 0 ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,775 INFO L263 TraceCheckUtils]: 6: Hoare triple {4635#(<= 0 ~guard_malloc_counter~0.offset)} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {4681#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:37,776 INFO L280 TraceCheckUtils]: 7: Hoare triple {4681#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:37,777 INFO L263 TraceCheckUtils]: 8: Hoare triple {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {4681#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:37,777 INFO L280 TraceCheckUtils]: 9: Hoare triple {4681#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:37,778 INFO L280 TraceCheckUtils]: 10: Hoare triple {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:37,779 INFO L280 TraceCheckUtils]: 11: Hoare triple {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,779 INFO L280 TraceCheckUtils]: 12: Hoare triple {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,780 INFO L280 TraceCheckUtils]: 13: Hoare triple {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume true; {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,781 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #69#return; {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,782 INFO L280 TraceCheckUtils]: 15: Hoare triple {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,782 INFO L280 TraceCheckUtils]: 16: Hoare triple {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume true; {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,784 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} {4635#(<= 0 ~guard_malloc_counter~0.offset)} #71#return; {4647#(<= 1 ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,784 INFO L280 TraceCheckUtils]: 18: Hoare triple {4647#(<= 1 ~guard_malloc_counter~0.offset)} ~dev1~0.base, ~dev1~0.offset := #t~ret32.base, #t~ret32.offset;havoc #t~ret32.base, #t~ret32.offset; {4647#(<= 1 ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,785 INFO L263 TraceCheckUtils]: 19: Hoare triple {4647#(<= 1 ~guard_malloc_counter~0.offset)} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {4681#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:37,786 INFO L280 TraceCheckUtils]: 20: Hoare triple {4681#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:37,787 INFO L263 TraceCheckUtils]: 21: Hoare triple {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {4681#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2020-07-10 15:06:37,788 INFO L280 TraceCheckUtils]: 22: Hoare triple {4681#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size := #in~size; {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:37,788 INFO L280 TraceCheckUtils]: 23: Hoare triple {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~size > 0; {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2020-07-10 15:06:37,789 INFO L280 TraceCheckUtils]: 24: Hoare triple {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:37,790 INFO L280 TraceCheckUtils]: 25: Hoare triple {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {4698#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:37,791 INFO L280 TraceCheckUtils]: 26: Hoare triple {4698#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} assume true; {4698#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} is VALID [2020-07-10 15:06:37,792 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {4698#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |__getMemory_#res.offset|)} {4682#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} #69#return; {4696#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} is VALID [2020-07-10 15:06:37,793 INFO L280 TraceCheckUtils]: 28: Hoare triple {4696#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#t~ret30.offset|)} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {4697#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-10 15:06:37,793 INFO L280 TraceCheckUtils]: 29: Hoare triple {4697#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} assume true; {4697#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} is VALID [2020-07-10 15:06:37,795 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {4697#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res.offset|)} {4647#(<= 1 ~guard_malloc_counter~0.offset)} #73#return; {4659#(<= 2 |main_#t~ret33.offset|)} is VALID [2020-07-10 15:06:37,796 INFO L280 TraceCheckUtils]: 31: Hoare triple {4659#(<= 2 |main_#t~ret33.offset|)} ~dev2~0.base, ~dev2~0.offset := #t~ret33.base, #t~ret33.offset;havoc #t~ret33.base, #t~ret33.offset; {4660#(<= 2 main_~dev2~0.offset)} is VALID [2020-07-10 15:06:37,796 INFO L280 TraceCheckUtils]: 32: Hoare triple {4660#(<= 2 main_~dev2~0.offset)} assume (~dev1~0.base != 0 || ~dev1~0.offset != 0) && (~dev2~0.base != 0 || ~dev2~0.offset != 0); {4660#(<= 2 main_~dev2~0.offset)} is VALID [2020-07-10 15:06:37,798 INFO L263 TraceCheckUtils]: 33: Hoare triple {4660#(<= 2 main_~dev2~0.offset)} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {4699#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:37,798 INFO L280 TraceCheckUtils]: 34: Hoare triple {4699#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {4630#true} is VALID [2020-07-10 15:06:37,798 INFO L280 TraceCheckUtils]: 35: Hoare triple {4630#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {4630#true} is VALID [2020-07-10 15:06:37,798 INFO L280 TraceCheckUtils]: 36: Hoare triple {4630#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {4630#true} is VALID [2020-07-10 15:06:37,798 INFO L280 TraceCheckUtils]: 37: Hoare triple {4630#true} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {4630#true} is VALID [2020-07-10 15:06:37,799 INFO L280 TraceCheckUtils]: 38: Hoare triple {4630#true} assume true; {4630#true} is VALID [2020-07-10 15:06:37,800 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {4630#true} {4660#(<= 2 main_~dev2~0.offset)} #75#return; {4660#(<= 2 main_~dev2~0.offset)} is VALID [2020-07-10 15:06:37,801 INFO L263 TraceCheckUtils]: 40: Hoare triple {4660#(<= 2 main_~dev2~0.offset)} call list_add(~dev1~0.base, ~dev1~0.offset, ~#head~0.base, ~#head~0.offset); {4699#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:37,801 INFO L280 TraceCheckUtils]: 41: Hoare triple {4699#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {4630#true} is VALID [2020-07-10 15:06:37,802 INFO L280 TraceCheckUtils]: 42: Hoare triple {4630#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {4630#true} is VALID [2020-07-10 15:06:37,802 INFO L280 TraceCheckUtils]: 43: Hoare triple {4630#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {4630#true} is VALID [2020-07-10 15:06:37,802 INFO L280 TraceCheckUtils]: 44: Hoare triple {4630#true} assume !(0 != #t~nondet31);havoc #t~nondet31; {4630#true} is VALID [2020-07-10 15:06:37,802 INFO L280 TraceCheckUtils]: 45: Hoare triple {4630#true} assume true; {4630#true} is VALID [2020-07-10 15:06:37,803 INFO L275 TraceCheckUtils]: 46: Hoare quadruple {4630#true} {4660#(<= 2 main_~dev2~0.offset)} #77#return; {4660#(<= 2 main_~dev2~0.offset)} is VALID [2020-07-10 15:06:37,805 INFO L263 TraceCheckUtils]: 47: Hoare triple {4660#(<= 2 main_~dev2~0.offset)} call list_del(~dev2~0.base, ~dev2~0.offset); {4699#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} is VALID [2020-07-10 15:06:37,805 INFO L280 TraceCheckUtils]: 48: Hoare triple {4699#(and (= ~elem~0.base |old(~elem~0.base)|) (= ~elem~0.offset |old(~elem~0.offset)|))} ~entry.base, ~entry.offset := #in~entry.base, #in~entry.offset; {4630#true} is VALID [2020-07-10 15:06:37,806 INFO L280 TraceCheckUtils]: 49: Hoare triple {4630#true} assume ~entry.base == ~elem~0.base && ~entry.offset == ~elem~0.offset;~elem~0.base, ~elem~0.offset := 0, 0; {4700#(= 0 ~elem~0.offset)} is VALID [2020-07-10 15:06:37,806 INFO L280 TraceCheckUtils]: 50: Hoare triple {4700#(= 0 ~elem~0.offset)} assume true; {4700#(= 0 ~elem~0.offset)} is VALID [2020-07-10 15:06:37,807 INFO L275 TraceCheckUtils]: 51: Hoare quadruple {4700#(= 0 ~elem~0.offset)} {4660#(<= 2 main_~dev2~0.offset)} #79#return; {4677#(and (= 0 ~elem~0.offset) (<= 2 main_~dev2~0.offset))} is VALID [2020-07-10 15:06:37,809 INFO L263 TraceCheckUtils]: 52: Hoare triple {4677#(and (= 0 ~elem~0.offset) (<= 2 main_~dev2~0.offset))} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {4678#(and (= 0 ~elem~0.offset) (<= 2 |list_add_#in~new.offset|))} is VALID [2020-07-10 15:06:37,809 INFO L280 TraceCheckUtils]: 53: Hoare triple {4678#(and (= 0 ~elem~0.offset) (<= 2 |list_add_#in~new.offset|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {4679#(and (= 0 ~elem~0.offset) (not (= 0 list_add_~new.offset)))} is VALID [2020-07-10 15:06:37,810 INFO L280 TraceCheckUtils]: 54: Hoare triple {4679#(and (= 0 ~elem~0.offset) (not (= 0 list_add_~new.offset)))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {4631#false} is VALID [2020-07-10 15:06:37,810 INFO L263 TraceCheckUtils]: 55: Hoare triple {4631#false} call __blast_assert(); {4631#false} is VALID [2020-07-10 15:06:37,810 INFO L280 TraceCheckUtils]: 56: Hoare triple {4631#false} assume !false; {4631#false} is VALID [2020-07-10 15:06:37,815 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 2 proven. 7 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2020-07-10 15:06:37,815 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1195145593] [2020-07-10 15:06:37,815 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2045108457] [2020-07-10 15:06:37,816 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-10 15:06:37,960 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:37,962 INFO L264 TraceCheckSpWp]: Trace formula consists of 321 conjuncts, 24 conjunts are in the unsatisfiable core [2020-07-10 15:06:37,978 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-10 15:06:37,980 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-10 15:06:38,417 INFO L263 TraceCheckUtils]: 0: Hoare triple {4630#true} call ULTIMATE.init(); {4630#true} is VALID [2020-07-10 15:06:38,418 INFO L280 TraceCheckUtils]: 1: Hoare triple {4630#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;call ~#head~0.base, ~#head~0.offset := #Ultimate.allocOnStack(8);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {4635#(<= 0 ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:38,419 INFO L280 TraceCheckUtils]: 2: Hoare triple {4635#(<= 0 ~guard_malloc_counter~0.offset)} assume true; {4635#(<= 0 ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:38,420 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {4635#(<= 0 ~guard_malloc_counter~0.offset)} {4630#true} #89#return; {4635#(<= 0 ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:38,420 INFO L263 TraceCheckUtils]: 4: Hoare triple {4635#(<= 0 ~guard_malloc_counter~0.offset)} call #t~ret34 := main(); {4635#(<= 0 ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:38,421 INFO L280 TraceCheckUtils]: 5: Hoare triple {4635#(<= 0 ~guard_malloc_counter~0.offset)} havoc ~dev1~0.base, ~dev1~0.offset;havoc ~dev2~0.base, ~dev2~0.offset; {4635#(<= 0 ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:38,421 INFO L263 TraceCheckUtils]: 6: Hoare triple {4635#(<= 0 ~guard_malloc_counter~0.offset)} call #t~ret32.base, #t~ret32.offset := my_malloc(8); {4722#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:38,422 INFO L280 TraceCheckUtils]: 7: Hoare triple {4722#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} ~size := #in~size; {4722#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:38,422 INFO L263 TraceCheckUtils]: 8: Hoare triple {4722#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {4722#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:38,423 INFO L280 TraceCheckUtils]: 9: Hoare triple {4722#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} ~size := #in~size; {4722#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:38,428 INFO L280 TraceCheckUtils]: 10: Hoare triple {4722#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} assume ~size > 0; {4722#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:38,430 INFO L280 TraceCheckUtils]: 11: Hoare triple {4722#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:38,430 INFO L280 TraceCheckUtils]: 12: Hoare triple {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:38,431 INFO L280 TraceCheckUtils]: 13: Hoare triple {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume true; {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:38,432 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} {4722#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} #69#return; {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:38,432 INFO L280 TraceCheckUtils]: 15: Hoare triple {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:38,433 INFO L280 TraceCheckUtils]: 16: Hoare triple {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume true; {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:38,434 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} {4635#(<= 0 ~guard_malloc_counter~0.offset)} #71#return; {4647#(<= 1 ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:38,434 INFO L280 TraceCheckUtils]: 18: Hoare triple {4647#(<= 1 ~guard_malloc_counter~0.offset)} ~dev1~0.base, ~dev1~0.offset := #t~ret32.base, #t~ret32.offset;havoc #t~ret32.base, #t~ret32.offset; {4647#(<= 1 ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:38,435 INFO L263 TraceCheckUtils]: 19: Hoare triple {4647#(<= 1 ~guard_malloc_counter~0.offset)} call #t~ret33.base, #t~ret33.offset := my_malloc(8); {4722#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:38,436 INFO L280 TraceCheckUtils]: 20: Hoare triple {4722#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} ~size := #in~size; {4722#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:38,436 INFO L263 TraceCheckUtils]: 21: Hoare triple {4722#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} call #t~ret30.base, #t~ret30.offset := __getMemory(~size); {4722#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:38,437 INFO L280 TraceCheckUtils]: 22: Hoare triple {4722#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} ~size := #in~size; {4722#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:38,437 INFO L280 TraceCheckUtils]: 23: Hoare triple {4722#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} assume ~size > 0; {4722#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:38,438 INFO L280 TraceCheckUtils]: 24: Hoare triple {4722#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} #t~post28.base, #t~post28.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := #t~post28.base, 1 + #t~post28.offset;havoc #t~post28.base, #t~post28.offset;assume -2147483648 <= #t~nondet29 && #t~nondet29 <= 2147483647; {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2020-07-10 15:06:38,439 INFO L280 TraceCheckUtils]: 25: Hoare triple {4689#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == #t~nondet29);havoc #t~nondet29;#res.base, #res.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {4780#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|))} is VALID [2020-07-10 15:06:38,439 INFO L280 TraceCheckUtils]: 26: Hoare triple {4780#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|))} assume true; {4780#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|))} is VALID [2020-07-10 15:06:38,441 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {4780#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |__getMemory_#res.offset|))} {4722#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} #69#return; {4787#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#t~ret30.offset|))} is VALID [2020-07-10 15:06:38,441 INFO L280 TraceCheckUtils]: 28: Hoare triple {4787#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#t~ret30.offset|))} #res.base, #res.offset := #t~ret30.base, #t~ret30.offset;havoc #t~ret30.base, #t~ret30.offset; {4791#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|))} is VALID [2020-07-10 15:06:38,442 INFO L280 TraceCheckUtils]: 29: Hoare triple {4791#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|))} assume true; {4791#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|))} is VALID [2020-07-10 15:06:38,443 INFO L275 TraceCheckUtils]: 30: Hoare quadruple {4791#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~guard_malloc_counter~0.offset |my_malloc_#res.offset|))} {4647#(<= 1 ~guard_malloc_counter~0.offset)} #73#return; {4659#(<= 2 |main_#t~ret33.offset|)} is VALID [2020-07-10 15:06:38,444 INFO L280 TraceCheckUtils]: 31: Hoare triple {4659#(<= 2 |main_#t~ret33.offset|)} ~dev2~0.base, ~dev2~0.offset := #t~ret33.base, #t~ret33.offset;havoc #t~ret33.base, #t~ret33.offset; {4660#(<= 2 main_~dev2~0.offset)} is VALID [2020-07-10 15:06:38,444 INFO L280 TraceCheckUtils]: 32: Hoare triple {4660#(<= 2 main_~dev2~0.offset)} assume (~dev1~0.base != 0 || ~dev1~0.offset != 0) && (~dev2~0.base != 0 || ~dev2~0.offset != 0); {4660#(<= 2 main_~dev2~0.offset)} is VALID [2020-07-10 15:06:38,445 INFO L263 TraceCheckUtils]: 33: Hoare triple {4660#(<= 2 main_~dev2~0.offset)} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {4630#true} is VALID [2020-07-10 15:06:38,445 INFO L280 TraceCheckUtils]: 34: Hoare triple {4630#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {4630#true} is VALID [2020-07-10 15:06:38,445 INFO L280 TraceCheckUtils]: 35: Hoare triple {4630#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {4630#true} is VALID [2020-07-10 15:06:38,445 INFO L280 TraceCheckUtils]: 36: Hoare triple {4630#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {4630#true} is VALID [2020-07-10 15:06:38,445 INFO L280 TraceCheckUtils]: 37: Hoare triple {4630#true} assume 0 != #t~nondet31;havoc #t~nondet31;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {4630#true} is VALID [2020-07-10 15:06:38,445 INFO L280 TraceCheckUtils]: 38: Hoare triple {4630#true} assume true; {4630#true} is VALID [2020-07-10 15:06:38,446 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {4630#true} {4660#(<= 2 main_~dev2~0.offset)} #75#return; {4660#(<= 2 main_~dev2~0.offset)} is VALID [2020-07-10 15:06:38,446 INFO L263 TraceCheckUtils]: 40: Hoare triple {4660#(<= 2 main_~dev2~0.offset)} call list_add(~dev1~0.base, ~dev1~0.offset, ~#head~0.base, ~#head~0.offset); {4630#true} is VALID [2020-07-10 15:06:38,447 INFO L280 TraceCheckUtils]: 41: Hoare triple {4630#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {4630#true} is VALID [2020-07-10 15:06:38,447 INFO L280 TraceCheckUtils]: 42: Hoare triple {4630#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {4630#true} is VALID [2020-07-10 15:06:38,447 INFO L280 TraceCheckUtils]: 43: Hoare triple {4630#true} assume -2147483648 <= #t~nondet31 && #t~nondet31 <= 2147483647; {4630#true} is VALID [2020-07-10 15:06:38,447 INFO L280 TraceCheckUtils]: 44: Hoare triple {4630#true} assume !(0 != #t~nondet31);havoc #t~nondet31; {4630#true} is VALID [2020-07-10 15:06:38,447 INFO L280 TraceCheckUtils]: 45: Hoare triple {4630#true} assume true; {4630#true} is VALID [2020-07-10 15:06:38,448 INFO L275 TraceCheckUtils]: 46: Hoare quadruple {4630#true} {4660#(<= 2 main_~dev2~0.offset)} #77#return; {4660#(<= 2 main_~dev2~0.offset)} is VALID [2020-07-10 15:06:38,448 INFO L263 TraceCheckUtils]: 47: Hoare triple {4660#(<= 2 main_~dev2~0.offset)} call list_del(~dev2~0.base, ~dev2~0.offset); {4630#true} is VALID [2020-07-10 15:06:38,448 INFO L280 TraceCheckUtils]: 48: Hoare triple {4630#true} ~entry.base, ~entry.offset := #in~entry.base, #in~entry.offset; {4630#true} is VALID [2020-07-10 15:06:38,449 INFO L280 TraceCheckUtils]: 49: Hoare triple {4630#true} assume ~entry.base == ~elem~0.base && ~entry.offset == ~elem~0.offset;~elem~0.base, ~elem~0.offset := 0, 0; {4855#(<= ~elem~0.offset 0)} is VALID [2020-07-10 15:06:38,449 INFO L280 TraceCheckUtils]: 50: Hoare triple {4855#(<= ~elem~0.offset 0)} assume true; {4855#(<= ~elem~0.offset 0)} is VALID [2020-07-10 15:06:38,450 INFO L275 TraceCheckUtils]: 51: Hoare quadruple {4855#(<= ~elem~0.offset 0)} {4660#(<= 2 main_~dev2~0.offset)} #79#return; {4862#(and (<= 2 main_~dev2~0.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:38,451 INFO L263 TraceCheckUtils]: 52: Hoare triple {4862#(and (<= 2 main_~dev2~0.offset) (<= ~elem~0.offset 0))} call list_add(~dev2~0.base, ~dev2~0.offset, ~#head~0.base, ~#head~0.offset); {4866#(and (<= 2 |list_add_#in~new.offset|) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:38,452 INFO L280 TraceCheckUtils]: 53: Hoare triple {4866#(and (<= 2 |list_add_#in~new.offset|) (<= ~elem~0.offset 0))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {4870#(and (<= 2 list_add_~new.offset) (<= ~elem~0.offset 0))} is VALID [2020-07-10 15:06:38,453 INFO L280 TraceCheckUtils]: 54: Hoare triple {4870#(and (<= 2 list_add_~new.offset) (<= ~elem~0.offset 0))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {4631#false} is VALID [2020-07-10 15:06:38,453 INFO L263 TraceCheckUtils]: 55: Hoare triple {4631#false} call __blast_assert(); {4631#false} is VALID [2020-07-10 15:06:38,453 INFO L280 TraceCheckUtils]: 56: Hoare triple {4631#false} assume !false; {4631#false} is VALID [2020-07-10 15:06:38,457 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 9 proven. 0 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2020-07-10 15:06:38,457 INFO L220 FreeRefinementEngine]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2020-07-10 15:06:38,457 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [15] imperfect sequences [18] total 26 [2020-07-10 15:06:38,457 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [841117384] [2020-07-10 15:06:38,458 INFO L78 Accepts]: Start accepts. Automaton has 15 states. Word has length 57 [2020-07-10 15:06:38,458 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-10 15:06:38,458 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 15 states. [2020-07-10 15:06:38,525 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 48 edges. 48 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:06:38,525 INFO L459 AbstractCegarLoop]: Interpolant automaton has 15 states [2020-07-10 15:06:38,525 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-10 15:06:38,526 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 15 interpolants. [2020-07-10 15:06:38,526 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=81, Invalid=569, Unknown=0, NotChecked=0, Total=650 [2020-07-10 15:06:38,526 INFO L87 Difference]: Start difference. First operand 69 states and 77 transitions. Second operand 15 states. [2020-07-10 15:06:40,499 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:40,500 INFO L93 Difference]: Finished difference Result 93 states and 102 transitions. [2020-07-10 15:06:40,500 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 16 states. [2020-07-10 15:06:40,500 INFO L78 Accepts]: Start accepts. Automaton has 15 states. Word has length 57 [2020-07-10 15:06:40,501 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-10 15:06:40,501 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 15 states. [2020-07-10 15:06:40,504 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 77 transitions. [2020-07-10 15:06:40,505 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 15 states. [2020-07-10 15:06:40,511 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 77 transitions. [2020-07-10 15:06:40,511 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 16 states and 77 transitions. [2020-07-10 15:06:40,703 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 77 edges. 77 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-10 15:06:40,708 INFO L225 Difference]: With dead ends: 93 [2020-07-10 15:06:40,710 INFO L226 Difference]: Without dead ends: 82 [2020-07-10 15:06:40,712 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 104 GetRequests, 67 SyntacticMatches, 0 SemanticMatches, 37 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 236 ImplicationChecksByTransitivity, 0.8s TimeCoverageRelationStatistics Valid=218, Invalid=1264, Unknown=0, NotChecked=0, Total=1482 [2020-07-10 15:06:40,713 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 82 states. [2020-07-10 15:06:40,925 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 82 to 64. [2020-07-10 15:06:40,925 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-10 15:06:40,925 INFO L82 GeneralOperation]: Start isEquivalent. First operand 82 states. Second operand 64 states. [2020-07-10 15:06:40,925 INFO L74 IsIncluded]: Start isIncluded. First operand 82 states. Second operand 64 states. [2020-07-10 15:06:40,926 INFO L87 Difference]: Start difference. First operand 82 states. Second operand 64 states. [2020-07-10 15:06:40,930 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:40,930 INFO L93 Difference]: Finished difference Result 82 states and 89 transitions. [2020-07-10 15:06:40,931 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 89 transitions. [2020-07-10 15:06:40,931 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:40,932 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:40,932 INFO L74 IsIncluded]: Start isIncluded. First operand 64 states. Second operand 82 states. [2020-07-10 15:06:40,932 INFO L87 Difference]: Start difference. First operand 64 states. Second operand 82 states. [2020-07-10 15:06:40,937 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-10 15:06:40,938 INFO L93 Difference]: Finished difference Result 82 states and 89 transitions. [2020-07-10 15:06:40,938 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 89 transitions. [2020-07-10 15:06:40,940 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-10 15:06:40,941 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-10 15:06:40,941 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-10 15:06:40,941 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-10 15:06:40,942 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 64 states. [2020-07-10 15:06:40,944 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 64 states to 64 states and 70 transitions. [2020-07-10 15:06:40,945 INFO L78 Accepts]: Start accepts. Automaton has 64 states and 70 transitions. Word has length 57 [2020-07-10 15:06:40,945 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-10 15:06:40,945 INFO L479 AbstractCegarLoop]: Abstraction has 64 states and 70 transitions. [2020-07-10 15:06:40,946 INFO L480 AbstractCegarLoop]: Interpolant automaton has 15 states. [2020-07-10 15:06:40,946 INFO L276 IsEmpty]: Start isEmpty. Operand 64 states and 70 transitions. [2020-07-10 15:06:40,947 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 65 [2020-07-10 15:06:40,948 INFO L414 BasicCegarLoop]: Found error trace [2020-07-10 15:06:40,948 INFO L422 BasicCegarLoop]: trace histogram [4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-10 15:06:41,162 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 9 z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable9 [2020-07-10 15:06:41,163 INFO L427 AbstractCegarLoop]: === Iteration 11 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-10 15:06:41,163 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-10 15:06:41,164 INFO L82 PathProgramCache]: Analyzing trace with hash -1118751113, now seen corresponding path program 1 times [2020-07-10 15:06:41,164 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-10 15:06:41,164 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [848990728] [2020-07-10 15:06:41,165 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-10 15:06:41,217 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2020-07-10 15:06:41,271 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2020-07-10 15:06:41,338 INFO L174 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2020-07-10 15:06:41,338 INFO L520 BasicCegarLoop]: Counterexample might be feasible [2020-07-10 15:06:41,339 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable10 [2020-07-10 15:06:41,444 WARN L1295 BoogieBacktranslator]: Unfinished Backtranslation: IntegerLiteral 13 could not be translated for associated CType STRUCT~~list_head?prev~*list_head?next~*list_head# [2020-07-10 15:06:41,445 WARN L1295 BoogieBacktranslator]: Unfinished Backtranslation: IntegerLiteral 16 could not be translated for associated CType STRUCT~~list_head?prev~*list_head?next~*list_head# [2020-07-10 15:06:41,472 WARN L170 areAnnotationChecker]: my_mallocENTRY has no Hoare annotation [2020-07-10 15:06:41,472 WARN L170 areAnnotationChecker]: ULTIMATE.initENTRY has no Hoare annotation [2020-07-10 15:06:41,472 WARN L170 areAnnotationChecker]: list_delENTRY has no Hoare annotation [2020-07-10 15:06:41,472 WARN L170 areAnnotationChecker]: ULTIMATE.startENTRY has no Hoare annotation [2020-07-10 15:06:41,472 WARN L170 areAnnotationChecker]: ULTIMATE.startENTRY has no Hoare annotation [2020-07-10 15:06:41,473 WARN L170 areAnnotationChecker]: __blast_assertENTRY has no Hoare annotation [2020-07-10 15:06:41,473 WARN L170 areAnnotationChecker]: __blast_assertENTRY has no Hoare annotation [2020-07-10 15:06:41,473 WARN L170 areAnnotationChecker]: list_addENTRY has no Hoare annotation [2020-07-10 15:06:41,473 WARN L170 areAnnotationChecker]: mainENTRY has no Hoare annotation [2020-07-10 15:06:41,473 WARN L170 areAnnotationChecker]: __getMemoryENTRY has no Hoare annotation [2020-07-10 15:06:41,474 WARN L170 areAnnotationChecker]: L879 has no Hoare annotation [2020-07-10 15:06:41,474 WARN L170 areAnnotationChecker]: L879 has no Hoare annotation [2020-07-10 15:06:41,474 WARN L170 areAnnotationChecker]: ULTIMATE.initFINAL has no Hoare annotation [2020-07-10 15:06:41,474 WARN L170 areAnnotationChecker]: L896 has no Hoare annotation [2020-07-10 15:06:41,474 WARN L170 areAnnotationChecker]: L896 has no Hoare annotation [2020-07-10 15:06:41,475 WARN L170 areAnnotationChecker]: L-1 has no Hoare annotation [2020-07-10 15:06:41,475 WARN L170 areAnnotationChecker]: L-1 has no Hoare annotation [2020-07-10 15:06:41,475 WARN L170 areAnnotationChecker]: __blast_assertFINAL has no Hoare annotation [2020-07-10 15:06:41,475 WARN L170 areAnnotationChecker]: L890 has no Hoare annotation [2020-07-10 15:06:41,475 WARN L170 areAnnotationChecker]: L890 has no Hoare annotation [2020-07-10 15:06:41,475 WARN L170 areAnnotationChecker]: L904 has no Hoare annotation [2020-07-10 15:06:41,476 WARN L170 areAnnotationChecker]: L904 has no Hoare annotation [2020-07-10 15:06:41,476 WARN L170 areAnnotationChecker]: L871 has no Hoare annotation [2020-07-10 15:06:41,476 WARN L170 areAnnotationChecker]: L871 has no Hoare annotation [2020-07-10 15:06:41,476 WARN L170 areAnnotationChecker]: L879-1 has no Hoare annotation [2020-07-10 15:06:41,476 WARN L170 areAnnotationChecker]: ULTIMATE.initEXIT has no Hoare annotation [2020-07-10 15:06:41,477 WARN L170 areAnnotationChecker]: L896-2 has no Hoare annotation [2020-07-10 15:06:41,477 WARN L170 areAnnotationChecker]: ULTIMATE.startFINAL has no Hoare annotation [2020-07-10 15:06:41,477 WARN L170 areAnnotationChecker]: __blast_assertEXIT has no Hoare annotation [2020-07-10 15:06:41,477 WARN L170 areAnnotationChecker]: __blast_assertEXIT has no Hoare annotation [2020-07-10 15:06:41,477 WARN L170 areAnnotationChecker]: L890-3 has no Hoare annotation [2020-07-10 15:06:41,477 WARN L170 areAnnotationChecker]: L890-2 has no Hoare annotation [2020-07-10 15:06:41,478 WARN L170 areAnnotationChecker]: L890-2 has no Hoare annotation [2020-07-10 15:06:41,478 WARN L170 areAnnotationChecker]: L904-1 has no Hoare annotation [2020-07-10 15:06:41,478 WARN L170 areAnnotationChecker]: L871-3 has no Hoare annotation [2020-07-10 15:06:41,478 WARN L170 areAnnotationChecker]: L871-2 has no Hoare annotation [2020-07-10 15:06:41,478 WARN L170 areAnnotationChecker]: L871-2 has no Hoare annotation [2020-07-10 15:06:41,478 WARN L170 areAnnotationChecker]: my_mallocFINAL has no Hoare annotation [2020-07-10 15:06:41,479 WARN L170 areAnnotationChecker]: list_delEXIT has no Hoare annotation [2020-07-10 15:06:41,479 WARN L170 areAnnotationChecker]: L891 has no Hoare annotation [2020-07-10 15:06:41,479 WARN L170 areAnnotationChecker]: L891 has no Hoare annotation [2020-07-10 15:06:41,479 WARN L170 areAnnotationChecker]: L905 has no Hoare annotation [2020-07-10 15:06:41,479 WARN L170 areAnnotationChecker]: L905 has no Hoare annotation [2020-07-10 15:06:41,480 WARN L170 areAnnotationChecker]: L873 has no Hoare annotation [2020-07-10 15:06:41,480 WARN L170 areAnnotationChecker]: L873 has no Hoare annotation [2020-07-10 15:06:41,480 WARN L170 areAnnotationChecker]: my_mallocEXIT has no Hoare annotation [2020-07-10 15:06:41,480 WARN L170 areAnnotationChecker]: my_mallocEXIT has no Hoare annotation [2020-07-10 15:06:41,480 WARN L170 areAnnotationChecker]: L909 has no Hoare annotation [2020-07-10 15:06:41,480 WARN L170 areAnnotationChecker]: L909 has no Hoare annotation [2020-07-10 15:06:41,481 WARN L170 areAnnotationChecker]: L891-2 has no Hoare annotation [2020-07-10 15:06:41,481 WARN L170 areAnnotationChecker]: L905-1 has no Hoare annotation [2020-07-10 15:06:41,481 WARN L170 areAnnotationChecker]: __getMemoryFINAL has no Hoare annotation [2020-07-10 15:06:41,481 WARN L170 areAnnotationChecker]: L910 has no Hoare annotation [2020-07-10 15:06:41,481 WARN L170 areAnnotationChecker]: L910 has no Hoare annotation [2020-07-10 15:06:41,481 WARN L170 areAnnotationChecker]: list_addEXIT has no Hoare annotation [2020-07-10 15:06:41,482 WARN L170 areAnnotationChecker]: list_addEXIT has no Hoare annotation [2020-07-10 15:06:41,482 WARN L170 areAnnotationChecker]: list_addEXIT has no Hoare annotation [2020-07-10 15:06:41,482 WARN L170 areAnnotationChecker]: list_addEXIT has no Hoare annotation [2020-07-10 15:06:41,482 WARN L170 areAnnotationChecker]: L906 has no Hoare annotation [2020-07-10 15:06:41,482 WARN L170 areAnnotationChecker]: L906 has no Hoare annotation [2020-07-10 15:06:41,482 WARN L170 areAnnotationChecker]: __getMemoryEXIT has no Hoare annotation [2020-07-10 15:06:41,483 WARN L170 areAnnotationChecker]: L906-1 has no Hoare annotation [2020-07-10 15:06:41,483 WARN L170 areAnnotationChecker]: L907-1 has no Hoare annotation [2020-07-10 15:06:41,483 WARN L170 areAnnotationChecker]: L907-1 has no Hoare annotation [2020-07-10 15:06:41,483 WARN L170 areAnnotationChecker]: L908 has no Hoare annotation [2020-07-10 15:06:41,483 WARN L170 areAnnotationChecker]: L908 has no Hoare annotation [2020-07-10 15:06:41,484 WARN L170 areAnnotationChecker]: L907 has no Hoare annotation [2020-07-10 15:06:41,484 WARN L170 areAnnotationChecker]: L907 has no Hoare annotation [2020-07-10 15:06:41,484 WARN L170 areAnnotationChecker]: mainFINAL has no Hoare annotation [2020-07-10 15:06:41,484 WARN L170 areAnnotationChecker]: mainEXIT has no Hoare annotation [2020-07-10 15:06:41,484 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. [2020-07-10 15:06:41,487 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction CFG 10.07 03:06:41 BoogieIcfgContainer [2020-07-10 15:06:41,487 INFO L132 PluginConnector]: ------------------------ END TraceAbstraction---------------------------- [2020-07-10 15:06:41,491 INFO L168 Benchmark]: Toolchain (without parser) took 47139.94 ms. Allocated memory was 139.5 MB in the beginning and 561.0 MB in the end (delta: 421.5 MB). Free memory was 103.1 MB in the beginning and 449.4 MB in the end (delta: -346.3 MB). Peak memory consumption was 75.2 MB. Max. memory is 7.1 GB. [2020-07-10 15:06:41,491 INFO L168 Benchmark]: CDTParser took 1.39 ms. Allocated memory is still 139.5 MB. Free memory was 122.5 MB in the beginning and 122.3 MB in the end (delta: 209.8 kB). Peak memory consumption was 209.8 kB. Max. memory is 7.1 GB. [2020-07-10 15:06:41,492 INFO L168 Benchmark]: CACSL2BoogieTranslator took 661.72 ms. Allocated memory was 139.5 MB in the beginning and 203.4 MB in the end (delta: 64.0 MB). Free memory was 102.9 MB in the beginning and 166.9 MB in the end (delta: -64.0 MB). Peak memory consumption was 26.4 MB. Max. memory is 7.1 GB. [2020-07-10 15:06:41,493 INFO L168 Benchmark]: Boogie Preprocessor took 105.08 ms. Allocated memory is still 203.4 MB. Free memory was 166.9 MB in the beginning and 163.6 MB in the end (delta: 3.3 MB). Peak memory consumption was 3.3 MB. Max. memory is 7.1 GB. [2020-07-10 15:06:41,494 INFO L168 Benchmark]: RCFGBuilder took 681.66 ms. Allocated memory is still 203.4 MB. Free memory was 163.6 MB in the beginning and 108.2 MB in the end (delta: 55.4 MB). Peak memory consumption was 55.4 MB. Max. memory is 7.1 GB. [2020-07-10 15:06:41,494 INFO L168 Benchmark]: TraceAbstraction took 45686.21 ms. Allocated memory was 203.4 MB in the beginning and 561.0 MB in the end (delta: 357.6 MB). Free memory was 107.6 MB in the beginning and 449.4 MB in the end (delta: -341.8 MB). Peak memory consumption was 15.8 MB. Max. memory is 7.1 GB. [2020-07-10 15:06:41,497 INFO L336 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - AssertionsEnabledResult: Assertions are enabled Assertions are enabled - StatisticsResult: Toolchain Benchmarks Benchmark results are: * CDTParser took 1.39 ms. Allocated memory is still 139.5 MB. Free memory was 122.5 MB in the beginning and 122.3 MB in the end (delta: 209.8 kB). Peak memory consumption was 209.8 kB. Max. memory is 7.1 GB. * CACSL2BoogieTranslator took 661.72 ms. Allocated memory was 139.5 MB in the beginning and 203.4 MB in the end (delta: 64.0 MB). Free memory was 102.9 MB in the beginning and 166.9 MB in the end (delta: -64.0 MB). Peak memory consumption was 26.4 MB. Max. memory is 7.1 GB. * Boogie Preprocessor took 105.08 ms. Allocated memory is still 203.4 MB. Free memory was 166.9 MB in the beginning and 163.6 MB in the end (delta: 3.3 MB). Peak memory consumption was 3.3 MB. Max. memory is 7.1 GB. * RCFGBuilder took 681.66 ms. Allocated memory is still 203.4 MB. Free memory was 163.6 MB in the beginning and 108.2 MB in the end (delta: 55.4 MB). Peak memory consumption was 55.4 MB. Max. memory is 7.1 GB. * TraceAbstraction took 45686.21 ms. Allocated memory was 203.4 MB in the beginning and 561.0 MB in the end (delta: 357.6 MB). Free memory was 107.6 MB in the beginning and 449.4 MB in the end (delta: -341.8 MB). Peak memory consumption was 15.8 MB. Max. memory is 7.1 GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator: - GenericResult: Unfinished Backtranslation Unfinished Backtranslation: IntegerLiteral 13 could not be translated for associated CType STRUCT~~list_head?prev~*list_head?next~*list_head# - GenericResult: Unfinished Backtranslation Unfinished Backtranslation: IntegerLiteral 16 could not be translated for associated CType STRUCT~~list_head?prev~*list_head?next~*list_head# * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - CounterExampleResult [Line: 6]: a call of __VERIFIER_error() is reachable a call of __VERIFIER_error() is reachable We found a FailurePath: [L867] void * guard_malloc_counter = 0; [L887] struct list_head *elem = ((void *)0); [L900] static struct list_head head; VAL [\old(elem)=9, \old(elem)=14, \old(guard_malloc_counter)=12, \old(guard_malloc_counter)=11, \old(head)=null, \old(head)=null, elem={0:0}, guard_malloc_counter={0:0}, head={3:0}] [L903] struct list_head *dev1, *dev2; VAL [\old(elem)=0, \old(elem)=0, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=0, elem={0:0}, guard_malloc_counter={0:0}, head={3:0}] [L904] CALL, EXPR my_malloc(sizeof(*dev1)) VAL [\old(elem)=0, \old(elem)=0, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=0, \old(size)=8, elem={0:0}, guard_malloc_counter={0:0}, head={3:0}] [L879] CALL, EXPR __getMemory(size) VAL [\old(elem)=0, \old(elem)=0, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=0, \old(size)=8, elem={0:0}, guard_malloc_counter={0:0}, head={3:0}] [L871] (size > 0) ? (0) : __blast_assert () VAL [\old(elem)=0, \old(elem)=0, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=0, \old(size)=8, elem={0:0}, guard_malloc_counter={0:0}, head={3:0}, size=8] [L872] guard_malloc_counter++ [L873] COND FALSE !(!__VERIFIER_nondet_int()) [L875] return (void *) guard_malloc_counter; VAL [\old(elem)=0, \old(elem)=0, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=0, \old(size)=8, \result={0:1}, elem={0:0}, guard_malloc_counter={0:1}, head={3:0}, size=8] [L879] RET, EXPR __getMemory(size) VAL [\old(elem)=0, \old(elem)=0, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=0, \old(size)=8, __getMemory(size)={0:1}, elem={0:0}, guard_malloc_counter={0:1}, head={3:0}, size=8] [L879] return __getMemory(size); [L904] RET, EXPR my_malloc(sizeof(*dev1)) VAL [\old(elem)=0, \old(elem)=0, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=0, elem={0:0}, guard_malloc_counter={0:1}, head={3:0}, my_malloc(sizeof(*dev1))={0:1}] [L904] dev1 = my_malloc(sizeof(*dev1)) [L905] CALL, EXPR my_malloc(sizeof(*dev2)) VAL [\old(elem)=0, \old(elem)=0, \old(guard_malloc_counter)=1, \old(guard_malloc_counter)=0, \old(size)=8, elem={0:0}, guard_malloc_counter={0:1}, head={3:0}] [L879] CALL, EXPR __getMemory(size) VAL [\old(elem)=0, \old(elem)=0, \old(guard_malloc_counter)=1, \old(guard_malloc_counter)=0, \old(size)=8, elem={0:0}, guard_malloc_counter={0:1}, head={3:0}] [L871] (size > 0) ? (0) : __blast_assert () VAL [\old(elem)=0, \old(elem)=0, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=1, \old(size)=8, elem={0:0}, guard_malloc_counter={0:1}, head={3:0}, size=8] [L872] guard_malloc_counter++ [L873] COND FALSE !(!__VERIFIER_nondet_int()) [L875] return (void *) guard_malloc_counter; VAL [\old(elem)=0, \old(elem)=0, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=1, \old(size)=8, \result={0:2}, elem={0:0}, guard_malloc_counter={0:2}, head={3:0}, size=8] [L879] RET, EXPR __getMemory(size) VAL [\old(elem)=0, \old(elem)=0, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=1, \old(size)=8, __getMemory(size)={0:2}, elem={0:0}, guard_malloc_counter={0:2}, head={3:0}, size=8] [L879] return __getMemory(size); [L905] RET, EXPR my_malloc(sizeof(*dev2)) VAL [\old(elem)=0, \old(elem)=0, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=0, dev1={0:1}, elem={0:0}, guard_malloc_counter={0:2}, head={3:0}, my_malloc(sizeof(*dev2))={0:2}] [L905] dev2 = my_malloc(sizeof(*dev2)) [L906] COND TRUE dev1!=((void *)0) && dev2!=((void *)0) VAL [\old(elem)=0, \old(elem)=0, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=0, dev1={0:1}, dev2={0:2}, elem={0:0}, guard_malloc_counter={0:2}, head={3:0}] [L907] CALL list_add(dev2, &head) VAL [\old(elem)=0, \old(elem)=0, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=0, elem={0:0}, guard_malloc_counter={0:2}, head={3:0}, head={3:0}, new={0:2}] [L890] (new!=elem) ? (0) : __blast_assert () VAL [\old(elem)=0, \old(elem)=0, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=0, elem={0:0}, guard_malloc_counter={0:2}, head={3:0}, head={3:0}, head={3:0}, new={0:2}, new={0:2}] [L891] COND TRUE __VERIFIER_nondet_int() [L892] elem = new VAL [\old(elem)=0, \old(elem)=0, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=0, elem={0:2}, guard_malloc_counter={0:2}, head={3:0}, head={3:0}, head={3:0}, new={0:2}, new={0:2}] [L907] RET list_add(dev2, &head) VAL [\old(elem)=0, \old(elem)=0, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=0, dev1={0:1}, dev2={0:2}, elem={0:2}, guard_malloc_counter={0:2}, head={3:0}] [L908] CALL list_add(dev1, &head) VAL [\old(elem)=0, \old(elem)=2, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=0, elem={0:2}, guard_malloc_counter={0:2}, head={3:0}, head={3:0}, new={0:1}] [L890] (new!=elem) ? (0) : __blast_assert () VAL [\old(elem)=2, \old(elem)=0, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=0, elem={0:2}, guard_malloc_counter={0:2}, head={3:0}, head={3:0}, head={3:0}, new={0:1}, new={0:1}] [L891] COND TRUE __VERIFIER_nondet_int() [L892] elem = new VAL [\old(elem)=2, \old(elem)=0, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=0, elem={0:1}, guard_malloc_counter={0:2}, head={3:0}, head={3:0}, head={3:0}, new={0:1}, new={0:1}] [L908] RET list_add(dev1, &head) VAL [\old(elem)=0, \old(elem)=0, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=0, dev1={0:1}, dev2={0:2}, elem={0:1}, guard_malloc_counter={0:2}, head={3:0}] [L909] CALL list_del(dev2) VAL [\old(elem)=0, \old(elem)=1, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=0, elem={0:1}, entry={0:2}, guard_malloc_counter={0:2}, head={3:0}] [L896] COND FALSE !(entry==elem) VAL [\old(elem)=0, \old(elem)=1, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=0, elem={0:1}, entry={0:2}, entry={0:2}, guard_malloc_counter={0:2}, head={3:0}] [L909] RET list_del(dev2) VAL [\old(elem)=0, \old(elem)=0, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=0, dev1={0:1}, dev2={0:2}, elem={0:1}, guard_malloc_counter={0:2}, head={3:0}] [L910] CALL list_add(dev2, &head) VAL [\old(elem)=0, \old(elem)=1, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=0, elem={0:1}, guard_malloc_counter={0:2}, head={3:0}, head={3:0}, new={0:2}] [L890] (new!=elem) ? (0) : __blast_assert () VAL [\old(elem)=0, \old(elem)=1, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=0, elem={0:1}, guard_malloc_counter={0:2}, head={3:0}, head={3:0}, head={3:0}, new={0:2}, new={0:2}] [L891] COND FALSE !(__VERIFIER_nondet_int()) [L910] RET list_add(dev2, &head) VAL [\old(elem)=0, \old(elem)=0, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=0, dev1={0:1}, dev2={0:2}, elem={0:1}, guard_malloc_counter={0:2}, head={3:0}] [L913] CALL list_add(dev1, &head) VAL [\old(elem)=1, \old(elem)=0, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=0, elem={0:1}, guard_malloc_counter={0:2}, head={3:0}, head={3:0}, new={0:1}] [L890] (new!=elem) ? (0) : __blast_assert () VAL [\old(elem)=0, \old(elem)=1, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=0, elem={0:1}, guard_malloc_counter={0:2}, head={3:0}, head={3:0}, head={3:0}, new={0:1}, new={0:1}] [L890] CALL __blast_assert () VAL [\old(elem)=1, \old(elem)=0, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=0, elem={0:1}, guard_malloc_counter={0:2}, head={3:0}] [L6] __VERIFIER_error() VAL [\old(elem)=0, \old(elem)=1, \old(guard_malloc_counter)=0, \old(guard_malloc_counter)=0, elem={0:1}, guard_malloc_counter={0:2}, head={3:0}] - StatisticsResult: Ultimate Automizer benchmark data CFG has 8 procedures, 48 locations, 1 error locations. Started 1 CEGAR loops. VerificationResult: UNSAFE, OverallTime: 45.4s, OverallIterations: 11, TraceHistogramMax: 4, AutomataDifference: 31.4s, DeadEndRemovalTime: 0.0s, HoareAnnotationTime: 0.0s, InitialAbstractionConstructionTime: 0.0s, HoareTripleCheckerStatistics: 389 SDtfs, 540 SDslu, 1133 SDs, 0 SdLazy, 5397 SolverSat, 635 SolverUnsat, 0 SolverUnknown, 0 SolverNotchecked, 11.2s Time, PredicateUnifierStatistics: 0 DeclaredPredicates, 727 GetRequests, 440 SyntacticMatches, 6 SemanticMatches, 281 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1374 ImplicationChecksByTransitivity, 7.6s Time, 0.0s BasicInterpolantAutomatonTime, BiggestAbstraction: size=72occurred in iteration=5, traceCheckStatistics: No data available, InterpolantConsolidationStatistics: No data available, PathInvariantsStatistics: No data available, 0/0 InterpolantCoveringCapability, TotalInterpolationStatistics: No data available, 0.0s DumpTime, AutomataMinimizationStatistics: 1.4s AutomataMinimizationTime, 10 MinimizatonAttempts, 57 StatesRemovedByMinimization, 9 NontrivialMinimizations, HoareAnnotationStatistics: No data available, RefinementEngineStatistics: TRACE_CHECK: 0.1s SsaConstructionTime, 0.5s SatisfiabilityAnalysisTime, 8.1s InterpolantComputationTime, 903 NumberOfCodeBlocks, 903 NumberOfCodeBlocksAsserted, 19 NumberOfCheckSat, 821 ConstructedInterpolants, 0 QuantifiedInterpolants, 161323 SizeOfPredicates, 49 NumberOfNonLiveVariables, 2263 ConjunctsInSsa, 202 ConjunctsInUnsatCore, 18 InterpolantComputations, 4 PerfectInterpolantSequences, 182/275 InterpolantCoveringCapability, INVARIANT_SYNTHESIS: No data available, INTERPOLANT_CONSOLIDATION: No data available, ABSTRACT_INTERPRETATION: No data available, PDR: No data available, ACCELERATED_INTERPOLATION: No data available, SIFA: No data available, ReuseStatistics: No data available RESULT: Ultimate proved your program to be incorrect! Received shutdown request...